Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python xlrd单元格读取返回空值_Python_Python 2.7_Utf 8_Xls_Xlrd - Fatal编程技术网

Python xlrd单元格读取返回空值

Python xlrd单元格读取返回空值,python,python-2.7,utf-8,xls,xlrd,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.nco

在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
导入xlrd
工作簿=xlrd.open_工作簿('299360.xls')
工作表=工作簿。按工作表名称(“工作表1”)
num_rows=worksheet.nrows-1
num_cells=worksheet.ncols-1
当前行=-1
当前行<数量行时:
当前行+=1
行=工作表。行(当前行)
打印“行:”,当前行
当前单元格=-1
当前单元格<数量单元格时:
当前单元格+=1
#单元格类型:0=空,1=文本,2=数字,3=日期,4=布尔值,5=错误,6=空白
单元格类型=工作表。单元格类型(当前行,当前单元格)
单元格数值=工作表。单元格数值(当前行,当前单元格)
打印“”,单元格类型“”:”,单元格值

奇怪的是,如果我更改、添加或编辑xls文件的任何单元格并再次保存,那么我就可以正确地获得所有单元格值。请帮助我解决此问题。如果有人对xls文件感兴趣,这里是

旧问题,但如果有人通过web搜索来到这里:

请记住,xlrd单元格是按行、列的顺序获取参数的,例如php是列、行。在Python中,如果您查看的是单元格(1116),它是第1行第116列,不太可能包含任何数据

xlrd行索引也从0开始


请参见

您确定没有任何隐藏列吗?您好@cchristellis,实际问题有点令人厌倦,我对此没有任何解释,这是因为excel文件是由我的程序生成的,为了通过xlrd获取所有单元格值,我不得不修改单个单元格(下表中的任何一个)每次,而且只有在保存之后,它才能完美地工作