xlrd单元格值返回错误
我有一个电子表格,结构如下(数据从列B开始。列A是空的)
ABCD Name city salary Jennifer Boston 100 Andrew Pittsburgh 1000 Sarah LA 100 Grand Total 1200
在将数据加载到数据库之前,我需要将总数过滤掉。
为此,我正在阅读总计为:
import xlrd import pymssql #open workbook book = xlrd.open_workbook("C:\_Workspace\Test\MM.xls") print( "The number of worksheets is", book.nsheets) #for each row in xls file loop #skip last row last_row = curr_sheet.nrows print(last_row) print(curr_sheet.ncols) skip_val = curr_sheet.cell(last_row,1).value print( skip_val) if skip_val == "Grand Total": last_row = last_row - 1 else: last_row = last_row for rx in range(last_row): print( curr_sheet.row(rx))
但是,我收到以下错误:
Traceback (most recent call last): File "C:\_Workspace\Test\xldb.py", line 26, in <module> skip_val = curr_sheet.cell(last_row,1).value File "c:\Python34\lib\site-packages\xlrd-0.9.3- >py3.4.egg\xlrd\sheet.py", line 399, in cell self._cell_types[rowx][colx], IndexError: list index out of range
我无法弄清楚上面的语法有什么问题。 希望这里的某个人能够发现为什么抛出错误。
非常感谢,蜜蜂
我认为你的问题不是基于零的索引。 last_row = curr_sheet.nrows
返回工作表中的行数,所以访问最后一行需要:
skip_val = curr_sheet.cell_value(last_row-1, 1)
Python中的第一个元素被索引为0,因此列表mylist
的第一个元素将是mylist[0]
。 最后一个元素不是mylist[len(mylist)]
,而是mylist[len(mylist)-1]
,应该写为mylist[-1]
。 你可以这样写:
skip_val = curr_sheet.cell_value(-1, 1)