xlsxwriter 正在创建损坏的文件

iso*_*man 2 python excel xlsxwriter

我正在使用此代码来测试 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()
Run Code Online (Sandbox Code Playgroud)

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()
Run Code Online (Sandbox Code Playgroud)

jmc*_*ara 5

第二个示例中的问题是 Excel 不允许您有两个表头具有相同的不区分大小写的值(在本例中为“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()
Run Code Online (Sandbox Code Playgroud)

XlsxWriter 应该对此发出警告,但直到现在我才意识到这一点。我将在即将发布的版本中添加一个检查。(在 Github 上作为issue #362跟踪。)

这也像在第一个例子中的问题,因为你有两个标题叫'C''F'/ 'f'- Excel需要标题名称是不区分大小写的情况下唯一的。