Dan*_*nko 4 python excel openpyxl
我有一个 Excel 文件列表,最后一行类似。它包含有关客户的私人信息(他的名字、姓氏、电话)。每个excel文件对应一个客户。我需要制作一个 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")
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
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")
Run Code Online (Sandbox Code Playgroud)
看起来是读取文件的问题。我不明白它从哪里获取存档中
命名的项目。'xl/workbook.xml'
选项 1:
我通过添加解决了这个问题read_only=True:具体来说,替换
f1 = load_workbook(filename=f)和
f1 = load_workbook(filename=f, read_only=True)
注意:根据您的代码,read_only=True可能会使您的代码非常慢。如果您遇到这种情况,您可能需要尝试选项 2。
选项 2:在 Excel 中打开有问题的工作簿,然后将其重新另存为Strict Open XML Spreadsheet (*.xlsx)
| 归档时间: |
|
| 查看次数: |
23421 次 |
| 最近记录: |