xlsxwriter 正在创建损坏的文件

xlsxwriter is creating a corrupted file

我正在使用此代码来测试 xlswriter 功能。

    import xlsxwriter 
# -*- coding: utf-8-sig-*-
workbook = xlsxwriter.Workbook("filename.xlsx")
worksheet = workbook.add_worksheet()
worksheet.add_table(0,0, 1, 11,{'columns': [{'header': 'ID'},
                                          {'header': '1'},
                                          {'header': u'ééé'},
                                          {'header': 'M'},
                                          {'header': 'C'},
                                          {'header': 'P'},
                                          {'header': u'o'},
                                          {'header': 'Pe'},
                                          {'header': 'F'},
                                          {'header': u'l'},
                                          {'header': 'C'},
                                          {'header': 'f'}
                                          ]})
workbook.close()

Excel 抱怨文件被损坏。如果我接受修复,我得到了预期的内容。

更新: 我对这个简约代码有同样的问题:

import xlsxwriter 



workbook = xlsxwriter.Workbook("filename.xlsx")
worksheet = workbook.add_worksheet("hi")
worksheet.add_table(0,0, 1, 2,{'columns': [{'header': 'ID'},
                                          {'header': '1'},
                                          {'header': '1'}]})
workbook.close()

第二个示例中的问题是 Excel 不允许您有两个 table header 具有相同的 case-insensitive 值(“1”在这种情况下)。以下作品:

import xlsxwriter 

workbook = xlsxwriter.Workbook("filename.xlsx")
worksheet = workbook.add_worksheet("hi")

worksheet.add_table(0, 0, 1, 2,{'columns': [{'header': 'ID'},
                                            {'header': '1'},
                                            {'header': '2'}]})
workbook.close()

XlsxWriter 应该对此发出警告,但我直到现在才意识到。我将在即将发布的版本中添加一张支票。 (在 Github 上追踪为 issue #362。)

这看起来也像第一个示例中的问题,因为您有两个标题,分别称为 'C''F'/'f' - Excel 需要 header不区分大小写的名称是唯一的。