使用Python 3.6.x + xlrd库读取Excel单元格数据时遇属性错误求助
解决xlrd库的AttributeError: module 'xlrd' has no attribute 'open_workbook'问题
先看你给出的错误栈,里面明确显示代码里写的是workbook=xlrd.workbook(file_location)——这就是问题所在!xlrd库中并没有直接可调用的workbook()函数,正确的打开Excel工作簿的方法是xlrd.open_workbook(),你应该是手误少打了open_前缀。
第一步:修正方法名
把代码里的xlrd.workbook()改成xlrd.open_workbook(),修正后的完整代码如下:
import xlrd file_location = "/home/deep/Desktop/Book1.xlsx" workbook = xlrd.open_workbook(file_location) # 这里是正确的方法名 sheet = workbook.sheet_by_index(0) first = sheet.cell_value(1, 1) print(first)
第二步:处理xlrd版本兼容问题(如果遇到新错误)
如果修正后还是报错,比如出现XLRDError: Excel xlsx file; not supported,那是因为xlrd 2.0及以上版本不再支持读取.xlsx格式的文件,只支持旧的.xls格式。这时候你有两个选择:
- 回退到支持.xlsx的旧版本xlrd:
pip uninstall xlrd pip install xlrd==1.2.0 - 换成更适合读取.xlsx的openpyxl库(推荐,因为xlrd现在主要维护旧格式支持),示例代码:
from openpyxl import load_workbook file_location = "/home/deep/Desktop/Book1.xlsx" workbook = load_workbook(file_location) sheet = workbook.active # 获取默认的第一个工作表 first = sheet.cell(row=2, column=2).value # 注意openpyxl的行/列是从1开始计数的,对应你原来的(1,1) print(first)
内容的提问来源于stack exchange,提问作者Deep Ghodasara
相关产品推荐
相关产品推荐

