python - ValueError:工作表标题中发现无效字符
问题描述
此 Python 代码失败:
from openpyxl import Workbook
wb = Workbook()
sheet = wb.create_sheet('*nice*')
例外:
/home/foo/local/bin/python /home/foo/src/invalid.py
Traceback (most recent call last):
File "/home/foo/src/invalid.py", line 5, in <module>
sheet = wb.create_sheet('*nice')
File "/home/foo/local/lib/python2.7/site-packages/openpyxl/workbook/workbook.py", line 158, in create_sheet
new_ws = Worksheet(parent=self, title=title)
File "/home/foo/local/lib/python2.7/site-packages/openpyxl/worksheet/worksheet.py", line 121, in __init__
_WorkbookChild.__init__(self, parent, title)
File "/home/foo/local/lib/python2.7/site-packages/openpyxl/workbook/child.py", line 50, in __init__
self.title = title or self._default_title
File "/home/foo/local/lib/python2.7/site-packages/openpyxl/workbook/child.py", line 93, in title
raise ValueError(msg)
ValueError: Invalid character * found in sheet title
如何创建包含*
在标题中的工作表?
解决方案
您可以使用正则表达式替换无效字符:
import re
from openpyxl import Workbook
from openpyxl.workbook.child import INVALID_TITLE_REGEX
wb = Workbook()
title = re.sub(INVALID_TITLE_REGEX, '_', '*nice*')
sheet = wb.create_sheet(title)
但这不是解决方案,只是一种解决方法。
欢迎更好的解决方案:有没有办法引用*
?
推荐阅读
- mysql - 计算与 Datetime 上一行的天数差异
- double-click - 订单项正在投放但未出现在网站上
- javascript - 如何在角度集成日志
- javascript - Flickr API 总是返回相同的数据
- python - 按混合数据类型过滤 DataFrame
- docker - Keycloak 安全代理不代理外部应用程序 URLl
- c# - 我如何将视图模型从视图上的表单返回到控制器
- grails - Grails 3.3.9:当视图位于项目结构中时,无法解析名称为“”的视图
- python - 错误:“NoneType”对象在连接层时没有属性“_inbound_nodes”(多输入模型)
- javascript - 链接操作(基于 DOM) - jquery mobile