Как ускорить объединение нескольких листов файлов Excel в один файл ExcelPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как ускорить объединение нескольких листов файлов Excel в один файл Excel

Сообщение Anonymous »

Обзор проблемы
Мне нужно объединить несколько файлов .xlsx в листы, где каждое имя листа должно быть именем файла.

Современная проблема
код ниже, что он становится медленным, и появляется на много памяти. />
попытка решения < /strong> < /p>
Закрытие файла Excel и удаления DataFrame и запуска GC < /code> вручную не работает. < /p>
Code < /prost> < /p>
import pandas as pd
import openpyxl
import os
import gc as gc

print("Copying sheets from multiple files to one file")

dir_input = 'D:/MeusProjetosJava/Importacao/'
dir_output = "Integrados/combined.xlsx"

cwd = os.path.abspath(dir_input)
files = os.listdir(cwd)

df_total = pd.DataFrame()
df_total.to_excel(dir_output) #create a new file
workbook=openpyxl.load_workbook(dir_output)
ss_sheet = workbook['Sheet1']
ss_sheet.title = 'TempExcelSheetForDeleting'
workbook.save(dir_output)

for file in files: # loop through Excel files
if file.endswith('.xls') or file.endswith('.xlsx'):
excel_file = pd.ExcelFile(cwd+"/"+file)
sheets = excel_file.sheet_names
for sheet in sheets:
sheet_name = str(file.title())
sheet_name = sheet_name.replace(".xlsx","").lower()
sheet_name = sheet_name.removesuffix(".xlsx")

print(file, sheet_name)

df = excel_file.parse(sheet_name = sheet)
with pd.ExcelWriter(dir_output,mode='a') as writer:
df.to_excel(writer, sheet_name=f"{sheet_name}", index=False)
del df

excel_file.close()
del excel_file
sheets = None
gc.collect()

workbook=openpyxl.load_workbook(dir_output)
std=workbook["TempExcelSheetForDeleting"]
workbook.remove(std)
workbook.save(dir_output)
print("all done")

ссылки

Сочетание нескольких листов в один Excel

Подробнее здесь: https://stackoverflow.com/questions/782 ... excel-file
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»