我有一個excel文件列表與最後一行相似。它包含有關客戶的私人信息(他的姓名,電話)。每個excel文件對應一個客戶端。我需要爲每個客戶端創建一個包含所有數據的excel文件。我決定自動做到這一點,所以看到openpyxl
圖書館。我寫了下面的代碼,但它不能正常工作。無法讀取excel文件,使用openpyxl
import openpyxl
import os
import glob
from openpyxl import load_workbook
from openpyxl import Workbook
import openpyxl.styles
from openpyxl.cell import get_column_letter
path_kit = 'prize_input/kit'
#creating single document
prize_info = Workbook()
prize_sheet = prize_info.active
file_array_reciever = []
for file in glob.glob(os.path.join(path_kit, '*.xlsx')):
file_array_reciever.append(file)
row_num = 1
for f in file_array_reciever:
f1 = load_workbook(filename=f)
sheet = f1.active
for col_num in range (3, sheet.max_column):
prize_sheet.cell(row=row_num, column=col_num).value = \
sheet.cell(row=sheet.max_row, column=col_num).value
prize_info.save("Ex.xlsx")
我得到這個錯誤:
Traceback (most recent call last):
File "/Users/zkid18/PycharmProjects/untitled/excel_test.py", line 43, in <module>
f1 = load_workbook(filename=f)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/openpyxl/reader/excel.py", line 183, in load_workbook
wb.active = read_workbook_settings(archive.read(ARC_WORKBOOK)) or 0
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/zipfile.py", line 1229, in read
with self.open(name, "r", pwd) as fp:
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/zipfile.py", line 1252, in open
zinfo = self.getinfo(name)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/zipfile.py", line 1196, in getinfo
'There is no item named %r in the archive' % name)
KeyError: "There is no item named 'xl/workbook.xml' in the archive"
看起來它是讀文件有問題。
我不明白它在歸檔中獲取名爲'xl/workbook.xml'
的項目的位置。
也許其中一個excel文件已損壞或使用不受openpyxl支持的功能。 – Muposat
確保文件路徑正確,您可以在每次循環迭代中打印出'f'來確認。 – schaazzz
你試圖閱讀的文件幾乎肯定存在問題。 –