Book没有调用xlrd.open\u工作簿()的extract\u formulas属性

2024-06-17 15:22:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

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'


Tags: inpylinesiteexcelroamingusersappdata
2条回答

根据警告中的xlrd documentation状态:

This library will no longer read anything other than .xls files.

尝试打开文件"C:\\Users\\m.macapanas\\Desktop\\OFCCP_Default_Values.xlsm"的工作簿时,会出现错误,该文件具有.xlsm扩展名

xlrd library显式不支持读取更新的文件格式,如.xlsm。因此,您必须切换库,或者找到一种方法将输入文件降级为支持的.xls格式

发行

分析错误

line 4, in excel_workbook = xlrd.open_workbook(path)

您的脚本无法打开工作簿

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

属性错误声明,它没有将extract_formulas作为xlrd's ^{} object的属性

由不支持的文件格式.xlsx

正如Nathaniel Ford's answer所解释的:

  • xlrd(从当前版本2.0.1开始)仅支持旧版Excel文件格式.xls

另见

替代解决方案

Stackoverflow的研究给出了: How can I open an Excel file in Python?

Working with Excel Files in Python是一个伟大的资源集合,列出了流行的图书馆

移植到OpenPyXL

上面有:openpyxl

The recommended package for reading and writing Excel 2010 files (ie: .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()

相关问题 更多 >