使用openpyxl时,如果我像这样更新单元格样式:
wb = Workbook()
ws = wb.active
a1 = ws['a1']
al.value = 'Hello World!'
a1.style.font.name = 'Algerian'
在Excel中打开文件会出错:
' Excel发现不可读的内容......'
日志文件:
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
-<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<logFileName>error107840_01.xml</logFileName>
<summary>Errors were detected in file 'D:\Phocas\Phocas-Automation\test.xlsx'</summary>
-<removedRecords summary="Following is a list of removed records:">
<removedRecord>Removed Records: Cell information from /xl/worksheets/sheet1.xml part</removedRecord>
</removedRecords>
</recoveryLog>
单元格显示正确的样式(font.name = Algerian),但在将文件分发给用户时,不希望出现错误消息。这也只是一个例子,如果我尝试这样的话,我会遇到同样的问题:
a1.style.font.bold = True
除了直接更新类实例中的属性外,还有其他方法可以更新单元格样式吗?
当我在https://openpyxl.readthedocs.org/en/latest/usage.html阅读文档时,它会说:
ft = Font(color=colors.RED)
a1.font = ft
但是这给了我一个属性错误:
AttributeError: 'Cell' object has no attribute 'font'
答案 0 :(得分:1)
我无法看到有关该文件的任何内容,但可以随意提交包含创建它的示例文件和脚本的错误报告。如果您正在编辑现有文件,则错误几乎肯定与openpyxl未保留的内容有关。
然而,cell.font = Font(…)
不起作用的事实表明你有一个相当旧版本的库。我建议你用pip install -U --pre