【发布时间】:2019-04-16 08:30:19
【问题描述】:
我正在尝试在 python 中打开 Excel 文件。 (Excel本身可以毫无问题地打开)。
但尝试在 python 中读取它时出现错误: "ValueError: int() 以 10 为底的无效文字:''"
如何治疗?或者有什么办法吗?可能是其他一些读取 Excel 文件的包?
两者都会发生 xlrd.open_workbook 和 pd.read_excel 在我的电脑上。
奇怪的是:如果我用Excel打开然后用Excel保存, 那么这样一个保存的版本 - 可以通过python毫无问题地打开。 因此,文件可能是由一些陈旧的 Excel 保存的。 但是我有很多这样方便的打开保存会很痛苦。
这里是详细的错误信息
----> 4 xlrd.open_workbook(dirName + fn )
C:\Anaconda3\lib\site-packages\xlrd\__init__.py in open_workbook(filename, logfile, verbosity, use_mmap, file_contents, encoding_override, formatting_info, on_demand, ragged_rows)
420 formatting_info=formatting_info,
421 on_demand=on_demand,
--> 422 ragged_rows=ragged_rows,
423 )
424 return bk
C:\Anaconda3\lib\site-packages\xlrd\xlsx.py in open_workbook_2007_xml(zf, component_names, logfile, verbosity, use_mmap, formatting_info, on_demand, ragged_rows)
831 x12sheet = X12Sheet(sheet, logfile, verbosity)
832 heading = "Sheet %r (sheetx=%d) from %r" % (sheet.name, sheetx, fname)
--> 833 x12sheet.process_stream(zflo, heading)
834 del zflo
835
C:\Anaconda3\lib\site-packages\xlrd\xlsx.py in own_process_stream(self, stream, heading)
546 for event, elem in ET.iterparse(stream):
547 if elem.tag == row_tag:
--> 548 self_do_row(elem)
549 elem.clear() # destroy all child elements (cells)
550 elif elem.tag == U_SSML12 + "dimension":
C:\Anaconda3\lib\site-packages\xlrd\xlsx.py in do_row(self, row_elem)
663 if explicit_row_number and cell_name[charx:] != row_number:
664 raise Exception('cell name %r but row number is %r' % (cell_name, row_number))
--> 665 xf_index = int(cell_elem.get('s', '0'))
666 cell_type = cell_elem.get('t', 'n')
667 tvalue = None
ValueError: invalid literal for int() with base 10: ''
【问题讨论】: