使用Python检测Excel中的空单元格

3

我写了一个Python代码,用于将多个Excel文件中的数据转换为单个CSV文件,但它不起作用。我尝试使用XL_CELL_EMPTY或XL_CELL_BLANK替换以下程序中的None。但是什么也没发生。它会显示以下错误:

Traceback (most recent call last):
  File "Excel_to_CSV_1.py", line 35, in <module>
    while Sh_B1.cell(i,j).value  != None : 
  File "/usr/lib/pymodules/python2.7/xlrd/sheet.py", line 245, in cell
    self._cell_types[rowx][colx],
IndexError: array index out of range

这是程序:

import xlrd
import os.path
from xlrd import open_workbook,empty_cell
book1 = xlrd.open_workbook("Excel_1.xls")
Sh_B1 = book1.sheet_by_index(0)
book2 = xlrd.open_workbook("Excel_2.xls")
Sh_B2 = book2.sheet_by_index(0)
i = 1
j = 1 
file = open("Output.txt", "w")
while Sh_B1.cell(i,j).value != None :
    while Sh_B1.cell(i,j).value  != None : 
        D1 = Sh_B1.cell(i,j).value
        D2 = Sh_B2.cell(i,j).value
        DB1 = str(D1)+ "," + str(D2)
        file.write("".join(DB1+ "\n"))
        j = j + 1
    j = 1
    print "j=1" 
    i = i + 1
file.close

我哪里错了?

1个回答

5
< p > xlrdSheet 对象具有 nrowsncols 属性,可以迭代单元格。
import xlrd
book = xlrd.open_workbook("my_file.xls")
sheet = book.sheet_by_index(0) # or: sheet_by_name(Sheet 1")
for row_index in xrange(sheet.nrows):
    for col_index in xrange(sheet.ncols):
        value = sheet.cell(rowx=row_index,colx=col_index).value

很好。如果解决了您的问题,请不要忘记接受答案,并欢迎来到SO :) - luc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接