簡體   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