我有这样的代码:
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()则结果是错误。
回溯(最近一次调用):文件“C:/User/m.macapana/IdeaProjects/OFCCP工具/用Python/Pandas.py读取Excel文件”,第4行,在excel_workbook =xlrd.open_workbook(路径)文件第141行,在open_workbook ragged_rows=ragged_rows中,在文件"C:\Users\m.macapanas\AppData\Roaming\Python\Python36\site-packages\xlrd\xlsx.py",第808行,在"C:\Users\m.macapanas\AppData\Roaming\Python\Python36\site-packages\xlrd\xlsx.py",x12book.process_stream(zflo,'Workbook')文件第265行中,在process_stream meth(self,elem) File "C:\Users\m.macapanas\AppData\Roaming\Python\Python36\site-packages\xlrd\xlsx.py",第392行中,在do_sheet sheet = Sheet(bk,position=None,name=name,文件"C:\Users\m.macapanas\AppData\Roaming\Python\Python36\site-packages\xlrd\sheet.py",第326行,在init self.extract_formulas = book.extract_formulas AttributeError中:'Book‘object没有属性'extract_formulas’
发布于 2021-08-04 18:07:28
发布于 2021-08-04 18:46:57
问题
分析误差
第4行,在excel_workbook =xlrd.open_workbook(路径)中
您的脚本无法打开工作簿。
AttributeError:“Book”对象没有属性“extract_formulas”
属性-错误状态下,它找不到extract_formulas作为对象的属性.
由不支持的文件格式.xlsx引起的。
正如纳撒尼尔·福特的回答所解释的:
.xls另请参阅
替代解
对堆栈溢出机制的研究:如何用Python打开Excel文件?
在Python中使用Excel文件是一个很好的资源集合,它列出了流行的图书馆。
移植到OpenPyXL
在上面:https://openpyxl.readthedocs.io/en/stable/
用于读写Excel2010文件的推荐包(即:.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()https://stackoverflow.com/questions/68655639
复制相似问题