openpyxl 不可读内容

openpyxl unreadable content

当使用 openpyxl 时,如果我像这样更新单元格的样式:

wb  = Workbook()
ws = wb.active
a1 = ws['a1']
al.value = 'Hello World!'
a1.style.font.name = 'Algerian'

打开Excel中的文件报错:

'Excel found unreadable content...'

日志文件:

<?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 = 阿尔及利亚语),但在将文件分发给用户时出现错误消息是不合需要的。这也只是一个例子,如果我尝试类似的东西,我会遇到同样的问题:

a1.style.font.bold = True

除了直接更新 class 实例中的属性外,还有其他方法可以更新单元格样式吗?

当我在 https://openpyxl.readthedocs.org/en/latest/usage.html 阅读文档时,它说要使用:

ft = Font(color=colors.RED)
a1.font = ft

但这给了我一个属性错误:

AttributeError: 'Cell' object has no attribute 'font'

我不能在没有看到文件的情况下说出任何关于该文件的信息,但请随时提交包含示例文件和创建它的脚本的错误报告。如果您正在编辑现有文件,则该错误几乎肯定与 openpyxl 未保留的内容有关。

但是,cell.font = Font(…) 不起作用的事实表明您的库版本相当旧。我建议您使用 pip install -U --pre

更新到 2.3-b2