繁体   English   中英

如何使用xlrd包处理xlsx文件读取错误(“断言tvalue不是None”)?

[英]how to handle xlsx file reading error (“assert tvalue is not None”) using xlrd package?

Python代码下面是读取xls和xlsx文件。 我在阅读xlsx文件时遇到问题。 错误是“断言tvalue不是None”

--> workbook=xlrd.open_workbook("/home/perlzuser/sprint12/template.xlsx")
sheet=workbook.sheet_by_index(0)    
data=[[sheet.cell_value(r,c) for c in range(sheet.ncols)]for r in range (sheet.nrows)]
print " ::",data

我的错误:::

do_row中的/home/perlzuser/Enthought/Canopy_32bit/User/lib/python2.7/site-packages/xlrd/xlsx.pyc(self,row_elem)723 else:724 bad_child_tag(child_tag) - > 725断言tvalue不是None 726 self.sheet.put_cell(rowx,colx,XL_CELL_TEXT,tvalue,xf_index)727否则:

Asse田:

如何在python中解决这个问题?

我找到了解决断言错误的方法:

码:

import xlrd
from openpyxl import load_workbook

wb = load_workbook("/home/perlzuser/sprint12/template.xlsx")
wb.save("file_new.xlsx")
workbook=xlrd.open_workbook("file_name.xlsx")

sheet=workbook.sheet_by_index(0)

data=[[sheet.cell_value(r,c) for c in range(sheet.ncols)]for r in range (sheet.nrows)]

print "output:", data

代码说明:

  • 这里我使用load_workbook读取文件并将该文件保存为file_new.xlsx。
  • 我只是将实际的xlsx文件(template.xlsx)数据复制到一个新的xlsx文件中(file_new.xlsx)

注意:这个复制的file_new.xlsx只能由python代码读取。 它将不是人类可读的格式,但您的代码将读取它。 您可以使用这些数据存储到DB或写入其他文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM