List Xlrd列表索引超出范围

List Xlrd列表索引超出范围,list,indexing,xlrd,List,Indexing,Xlrd,我刚刚开始探索Xlrd,老实说,我对编程非常陌生,一直在研究他们的一些简单示例,但无法让这些简单代码正常工作: import xlrd book=open_workbook('C:\\Users\\M\\Documents\\trial.xlsx') sheet=book.sheet_by_index(1) cell=sheet.cell(0,0) print cell 我得到一个错误:列表索引超出范围(参考代码的第二位到最后一位) 我剪切并粘贴了pdf中的大部分代码……有什么帮助吗?我会在

我刚刚开始探索Xlrd,老实说,我对编程非常陌生,一直在研究他们的一些简单示例,但无法让这些简单代码正常工作:

import xlrd

book=open_workbook('C:\\Users\\M\\Documents\\trial.xlsx')
sheet=book.sheet_by_index(1)
cell=sheet.cell(0,0)
print cell
我得到一个错误:列表索引超出范围(参考代码的第二位到最后一位)
我剪切并粘贴了pdf中的大部分代码……有什么帮助吗?

我会在控制台中使用它

每次执行一条语句,然后查看每条语句的结果。工作表索引从0开始计数,因此如果您只有一个工作表,那么您需要第二个工作表,这将导致列表索引超出范围错误

您可能缺少的另一件事是,如果单元格中没有数据,则并非所有单元格都存在。有些是,但有些不是。基本上,从xlrd的角度来看,存在的单元是矩阵
nrows
x
ncols
中的单元

另一件事是,如果您确实想要从单元格中取出值,请使用
cell\u value
方法。这将返回字符串或浮点

旁注,您可以这样编写路径:
'C:/Users/M/Documents/trial.xlsx'
。Python将完美地处理后端的
/
vs
\
,您不必使用转义字符进行处理。

您说:

我得到一个错误:列表索引超出范围(指倒数第二个) (代码位)

我对此表示怀疑。档案里有多少张纸?我怀疑只有一张纸。Python中的索引从0开始,而不是从1开始。请编辑您的问题以显示完整的回溯和完整的错误消息。我怀疑它会显示
索引器
出现在最后第三行:

sheet=book.sheet_by_index(1)

我还建议您在工作簿上使用sheet_by_name方法,因为它将使您的程序更加灵活。它将能够处理重新排列工作表或插入新工作表的人。@BenMordecai:
sheet\u by\u name
当然是一种方法,如果您希望使用具有特定名称的工作表。它不能处理需要一张工作表的情况,但创建者在选择工作表名称时故意不一致。您可以随时对照book.sheets进行检查,或反复查看并找到所需的工作表。最终,您将有几个选择:工作表位置正确,工作表名称正确,或者检查每个工作表并根据您想要查找的数据进行测试。
maxrows
etc是错误的。使用
属性
nrows
ncol
。你说得对。我没有考虑属性本身的名称,而是考虑在给定时间定义哪些单元格。我将编辑以确保正确性。