我在使用python中的xlrd包读取xls文件时遇到了一个奇怪的问题。问题是xlrd将大多数单元格留空(在打印或写入文件时),尽管它包含一些(浮点数和数字)值。这是我正在使用的代码
import xlrd
workbook = xlrd.open_workbook('299360.xls')
worksheet = workbook.sheet_by_name('sheet1')
num_rows = worksheet.nrows - 1
num_cells = worksheet.ncols - 1
curr_row = -1
while curr_row < num_rows:
curr_row += 1
row = worksheet.row(curr_row)
print 'Row:', curr_row
curr_cell = -1
while curr_cell < num_cells:
curr_cell += 1
# Cell Types: 0=Empty, 1=Text, 2=Number, 3=Date, 4=Boolean, 5=Error, 6=Blank
cell_type = worksheet.cell_type(curr_row, curr_cell)
cell_value = worksheet.cell_value(curr_row, curr_cell)
print ' ', cell_type, ':', cell_value
奇怪的是,如果我更改,添加或编辑xls文件的任何单元格并再次保存,那么我将正确获取所有单元格值。帮我解决这个问题。如果有人对xls文件感兴趣,那么link
答案 0 :(得分:0)
老问题,但如果有人通过网络搜索来到这里:
请记住,xlrd单元格按ROW,COLUMN的顺序接受参数,其中php例如是COLUMN,ROW。在Python中,如果您正在查看单元格(1,116),那么第1行第116列并且不太可能有任何数据
xlrd行索引也从0开始