提问者:小点点

Book没有extract_formulas属性调用xlrd.open_workbook()


我有这个代码:

import xlrd

path = "C:\\Users\\m.macapanas\\Desktop\\OFCCP_Default_Values.xlsm"
excel_workbook = xlrd.open_workbook(path)
excel_worksheet = excel_workbook.sheet_by_index(0)


#Read from Excel Worksheet
print("Your Worksheet has " + str(excel_worksheet.ncols) + " columns")
print("Your Worksheet has " + str(excel_worksheet.nrows) + " rows")

for row in range (excel_worksheet.nrows):
    for col in range(excel_worksheet.ncols):
        print(excel_worksheet.cell_value(row, col), end='')
        print('\t', end='')
    print()

那么结果就是错误


共2个答案

匿名用户

根据警告中的xlrd留档状态:

该库将不再读取. xls文件以外的任何内容。

当您尝试打开具有. xlsm扩展名的文件"C:\\用户\\m.macapanas\\Desktop\\OFCCP_Default_Values.xlsm"的工作簿时,会弹出错误。

xlrd库明确不支持读取较新的文件格式,如. xlsm。因此,您要么切换库,要么想办法将输入文件降级为支持的.xls格式。

匿名用户

第4行,excel_workbook=xlrd.open_workbook(路径)

您的脚本无法打开工作簿。

Book对象没有属性extract_formulas

属性错误指出,它没有找到extract_formulas作为xlrd的Book对象的属性。

正如纳撒尼尔·福特的回答所解释的:

  • xlrd(从当前版本2.0.1开始)仅支持旧的Excel文件格式. xls
  • 熊猫无法打开Excel(. xlsx)文件
  • 为什么打开. xlsm而不是.xls时python xlrd错误

Stackoverflow的研究给出:如何在Python中打开Excel文件?

在Python中使用Excel文件是一个很好的资源集合,其中列出了流行的库。

上面有:openpyxl

读写Excel 2010文件的推荐包(即:. xlsx)

安装后使用:

pip install openpyxl

您的代码可能会被移植到此库,例如:

from openpyxl import load_workbook

path = "C:\\Users\\m.macapanas\\Desktop\\OFCCP_Default_Values.xlsm"

excel_workbook = load_workbook(filename = path)
excel_worksheet = excel_workbook. worksheets[0] # first worksheet


# Read from Excel Worksheet
print("Your Worksheet has " + str(excel_worksheet.ncols) + " columns")
print("Your Worksheet has " + str(excel_worksheet.nrows) + " rows")

for row in excel_worksheet.rows:
    for col in excel_worksheet.cols:
        print(excel_worksheet.cell(row, col), end='')
        print('\t', end='')
    print()