openpyxl难以理解的内容

时间:2015-10-20 10:33:02

标签: xml excel python-2.7 openpyxl

使用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'

1 个答案:

答案 0 :(得分:1)

我无法看到有关该文件的任何内容,但可以随意提交包含创建它的示例文件和脚本的错误报告。如果您正在编辑现有文件,则错误几乎肯定与openpyxl未保留的内容有关。

然而,cell.font = Font(…)不起作用的事实表明你有一个相当旧版本的库。我建议你用pip install -U --pre

更新到2.3-b2