Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么openpyxl一直在破坏我的excel文件?_Python_Python 3.x_Excel_Openpyxl - Fatal编程技术网

Python 为什么openpyxl一直在破坏我的excel文件?

Python 为什么openpyxl一直在破坏我的excel文件?,python,python-3.x,excel,openpyxl,Python,Python 3.x,Excel,Openpyxl,我正在尝试使用openpyxl库将样式应用于excel文件中的单元格。如果尝试此操作(使用现有样式并对其进行修改): 我打开“example.xlsx”,发现我的文件已损坏/需要恢复。我认为可能无法覆盖某些现有样式,因此我创建了一个新的命名样式“highlight”,并使用相关颜色: highlight = openpyxl.styles.NamedStyle(name="highlight") highlight.fill = openpyxl.styles.PatternFill(bgCol

我正在尝试使用openpyxl库将样式应用于excel文件中的单元格。如果尝试此操作(使用现有样式并对其进行修改):

我打开“example.xlsx”,发现我的文件已损坏/需要恢复。我认为可能无法覆盖某些现有样式,因此我创建了一个新的命名样式“highlight”,并使用相关颜色:

highlight = openpyxl.styles.NamedStyle(name="highlight")
highlight.fill = openpyxl.styles.PatternFill(bgColor=openpyxl.styles.colors.Color(theme=30),fill_type='shaded',patternType='lightGray')
bd = openpyxl.styles.Side(color=openpyxl.styles.colors.Color(theme=29))
highlight.border = openpyxl.styles.Border(left=bd, top=bd, right=bd, bottom=bd)
highlight.font = openpyxl.styles.Font(name='Calibri',size=11,bold=False,italic=False,vertAlign=None,underline='none',strike=False)

wkbk.add_named_style(highlight)

cell_.style = 'highlight'
但是,我不断得到一个ValueError,指示我需要为类“PatternFill”的参数“patternType”提供一个值。这显然没有道理

也许我做得不对(很难理解文档;必须查找较旧的类似实现/代码片段)。如果你能帮忙,我将不胜感激


谢谢大家!

我意识到这已经很晚了,但我遇到了一个类似的问题,当我试图将Pandas数据框写入Excel工作簿时,openpyxl破坏了我的.xlsx文件。问题是工作簿中的某些单元格中还有其他一些带有公式的选项卡,并且由于某种原因,这些公式在openpyxl运行时会损坏。我不明白为什么,但“修复”是删除公式(因此,可以硬编码任何内容)。

我意识到这已经很晚了,但我遇到了一个类似的问题,当我试图将Pandas数据框写入Excel工作簿时,openpyxl破坏了我的.xlsx文件。问题是工作簿中的某些单元格中还有其他一些带有公式的选项卡,并且由于某种原因,这些公式在openpyxl运行时会损坏。我不明白为什么,但“修复”是删除公式(因此,可以硬编码任何内容)

highlight = openpyxl.styles.NamedStyle(name="highlight")
highlight.fill = openpyxl.styles.PatternFill(bgColor=openpyxl.styles.colors.Color(theme=30),fill_type='shaded',patternType='lightGray')
bd = openpyxl.styles.Side(color=openpyxl.styles.colors.Color(theme=29))
highlight.border = openpyxl.styles.Border(left=bd, top=bd, right=bd, bottom=bd)
highlight.font = openpyxl.styles.Font(name='Calibri',size=11,bold=False,italic=False,vertAlign=None,underline='none',strike=False)

wkbk.add_named_style(highlight)

cell_.style = 'highlight'