书籍没有extract_formulas属性,调用xlrd.open_workbook()。

7 浏览
0 Comments

书籍没有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()

然后结果是错误的

Traceback (most recent call last):

File \"C:/Users/m.macapanas/IdeaProjects/OFCCP Tool/Read Excel File with Python/Pandas.py\", line 4, in

excel_workbook = xlrd.open_workbook(path)

File \"C:\\Users\\m.macapanas\\AppData\\Roaming\\Python\\Python36\\site-packages\\xlrd_init_.py\", line 141, in open_workbook

ragged_rows=ragged_rows,

File \"C:\\Users\\m.macapanas\\AppData\\Roaming\\Python\\Python36\\site-packages\\xlrd\\xlsx.py\", line 808, in open_workbook_2007_xml

x12book.process_stream(zflo, \'Workbook\')

File \"C:\\Users\\m.macapanas\\AppData\\Roaming\\Python\\Python36\\site-packages\\xlrd\\xlsx.py\", line 265, in process_stream

meth(self, elem)

File \"C:\\Users\\m.macapanas\\AppData\\Roaming\\Python\\Python36\\site-packages\\xlrd\\xlsx.py\", line 392, in do_sheet

sheet = Sheet(bk, position=None, name=name, number=sheetx)

File \"C:\\Users\\m.macapanas\\AppData\\Roaming\\Python\\Python36\\site-packages\\xlrd\\sheet.py\", line 326, in init

self.extract_formulas = book.extract_formulas

AttributeError: \'Book\' object has no attribute \'extract_formulas\'

admin 更改状态以发布 2023年5月23日
0
0 Comments

问题

分析错误

第4行代码中,excel_workbook = xlrd.open_workbook(path)

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

AttributeError:'Book'对象没有属性'extract_formulas'

属性错误说明,在xlrd的Book对象中找不到extract_formulas属性。

由于不支持的文件格式.xlsx而导致

正如Nathaniel Ford的回答所解释的:

  • xlrd(截至当前版本2.0.1)仅支持较旧的Excel文件格式.xls

另请参阅

备选解决方案

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

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

移植到OpenPyXL

在顶部有: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()

0
0 Comments

根据xlrd文档中的警告:

这个库将不再读取除.xls文件以外的任何文件。

当您尝试打开一个扩展名为.xlsm的文件"C:\\Users\\m.macapanas\\Desktop\\OFCCP_Default_Values.xlsm"时,就会出现错误。

xlrd库明确不支持读取像.xlsm这样的较新文件格式。因此,您将需要切换库或找到一种方法将输入文件降级为支持的.xls格式。

0