Обзор проблемы
Мне нужно объединить несколько файлов .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
Как ускорить объединение нескольких листов файлов Excel в один файл Excel ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как получить все данные листов из API листов Google с помощью Apache Camel
Anonymous » » в форуме JAVA - 0 Ответы
- 36 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как получить все данные листов из API листов Google с помощью Apache Camel
Anonymous » » в форуме JAVA - 0 Ответы
- 33 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как получить все данные листов из API листов Google с помощью Apache Camel
Anonymous » » в форуме JAVA - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Объединение таблиц из нескольких листов в одну таблицу с помощью Openpyxl
Anonymous » » в форуме Python - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-