2016-07-04 51 views
2

我正在使用此代碼來測試xlswriter functionnalitues。xlsxwriter正在創建一個損壞的文件

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() 
+0

你有沒有試過https://github.com/jmcnamara/XlsxWriter/issues/65? –

+0

是的,我也試過沒有特殊的字符,如「é」,我得到了同樣的問題 – isoman

+0

嗯......我看不出任何明顯錯誤(但我不是'xlswriter'專家) - 但如果你不這裏沒有答案 - 開發人員有一個活躍的[谷歌組](https://groups.google.com/forum/#!forum/python-excel)可以聯繫到他們。 –

回答

3

在第二個例子中的問題是,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() 

XlsxWriter應該發出這樣的警告,但直到現在我還沒有意識到這一點。我會在即將發佈的版本中添加支票。 (履帶在Github上爲issue #362。)

這也像在第一個例子中的問題,因爲你有兩個標題叫'C''F'/'f' - Excel需要標題名稱是不區分大小寫的情況下唯一的。