Python xlrd单元格读取返回空白值

时间:2014-05-04 07:58:13

标签: python python-2.7 utf-8 xls xlrd

我在使用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

1 个答案:

答案 0 :(得分:0)

老问题,但如果有人通过网络搜索来到这里:

请记住,xlrd单元格按ROW,COLUMN的顺序接受参数,其中php例如是COLUMN,ROW。在Python中,如果您正在查看单元格(1,116),那么第1行第116列并且不太可能有任何数据

xlrd行索引也从0开始

请参阅http://www.lexicon.net/sjmachin/xlrd.html