python – 在使用xlwt创build相同的文件后用xlrd打开XLS文件时出错

我的脚本使用xlwt模块创buildXLS文件(其中填充了一些数据)并将其保存在工作目录中。 该操作的第一部分已成功完成。 在同一个脚本中,下一部分是读取保存的XLS文件,并根据该文件创build另一个填充了某些值的XLS文件。 第一次XLS保存后,我得到一个错误,读取保存XLS使用xlrd作为下;

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 

我通过在这个论坛searchfind的工作是打开从第一部分保存的XLS输出,保存并closures它。 运行脚本的第二部分,它将成功运行。

我想要实现的是一起运行脚本,没有任何错误。 换句话说,运行脚本…第一部分将保存XLS,第二部分将立即开始读取从第一部分保存的XLS输出,并生成第二个输出为XLS。

任何帮助将不胜感激。 提前致谢。

通过xlwt编写文件没有根本的问题,并通过xlwt重新读取它,如下例所示:

 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 

所以这是由你来debugging是什么问题在你的程序导致错误。

鉴于在Excel中保存文件后,您没有看到问题,可能很可能是xlwt存在这个问题,但是您需要再次演示,或者为开发人员提供一些debugging方法。