2014-01-07 28 views
1

我的腳本使用xlwt模塊創建XLS文件(其中填充了一些數據)並將其保存在工作目錄中。該操作的第一部分已成功完成。在同一個腳本中,下一部分是讀取已保存的XLS文件並基於該文件創建另一個填充了某些值的XLS文件。一旦保存了第一個XLS,我會在使用xlrd讀取保存的XLS時發生錯誤;python - 使用xlwt創建相同文件後用xlrd打開XLS文件時出錯

ERROR: Traceback (most recent call last): 
ERROR: File "C:\Esri_SCRIPTS\GDB_FC_SourceMapping_Service_V6\GDB_FC_SourceMapping_V6_Dev.py", line 200, in <module> 
ERROR:  wb=xlrd.open_workbook(CurWrokDir + '\DataSources.xls') 
ERROR: File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 454, in open_workbook 
ERROR:  bk.parse_globals() 
ERROR: File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 1473, in parse_globals 
ERROR:  self.handle_sst(data) 
ERROR: File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 1446, in handle_sst 
ERROR:  self._sharedstrings = unpack_SST_table(strlist, uniquestrings) 
ERROR: File "C:\Python26\ArcGIS10.0\lib\site-packages\xlrd\__init__.py", line 1663, in unpack_SST_table 
ERROR:  nchars = local_unpack('<H', data[pos:pos+2])[0] 
error: unpack requires a string argument of length 2 
ERROR: 
ERROR: unpack requires a string argument of length 2 

我通過在此論壇上搜索找到的解決方法是打開從第一部分保存的XLS輸出,保存並關閉它。運行腳本的第二部分,它將成功運行。

我想實現的是一起運行腳本,沒有任何錯誤。換句話說,運行腳本......第一部分將保存XLS,第二部分將立即開始讀取第一部分的保存XLS輸出並生成第二個輸出爲XLS。

任何幫助將不勝感激。提前致謝。

+0

嗨,大家好,我不確定這是否是發佈此python問題的正確位置,但任何人都可以幫助解決此問題? – user3167453

+0

這裏沒有足夠的信息來幫助您調試。你應該提供你正在使用的'xlw​​t'和'xlrd'程序的小而完整的例子。 – jmcnamara

+0

不幸的是,我不允許分享爲我的組織開發的代碼,但如果滿足需要,我可以提供更多的描述性細節。 – user3167453

回答

0

有通過xlwt和寫入文件沒有根本性的問題,通過xlrd重新閱讀它,如下面的例子:

import xlwt 
import xlrd 

# Write an Excel file. 
workbook = xlwt.Workbook() 
worksheet = workbook.add_sheet('Sheet1') 

worksheet.write(0, 0, 'Hello') 
worksheet.write(1, 0, 12345) 

workbook.save('test.xls') 

# Now read it back in. 
workbook = xlrd.open_workbook('test.xls') 
worksheet = workbook.sheet_by_name('Sheet1') 

print worksheet.row(0)[0].value 
print worksheet.row(1)[0].value 

打印:

$ python reread.py 
Hello 
12345.0 

所以它是由你調試您的程序中導致錯誤的問題。

既然你沒有看到的問題,您保存文件後,在Excel中,可能的情況是,這是xlwt一些問題,但同樣需要證明或者提供某種方式讓開發者調試。

相關問題