Объедините несколько книг Excel в одну с несколькими листами - PullRequest
0 голосов
/ 27 сентября 2019

У меня более 50 рабочих тетрадей, которые я хочу объединить в одну рабочую тетрадь в виде 50 листов с форматированием, раскраской, заполнением и т. Д., Которые все еще находятся в такте.Вот что я попробовал:

import pandas as pd
import os
from openpyxl import load_workbook
from openpyxl import Workbook


path = "mypath"
directory = os.listdir(f'{path}')
files = [f for f in directory if f[-4:] == 'xlsx']
combined = Workbook()
ws = combined.active

for item in files:
    wb = load_workbook(filename = f'{path}/{item}')
    sheet = wb.sheetnames
    data = pd.read_excel(f'{path}/{item}',sheet_name=f'{sheet[0]}')
    data.to_excel(f'{path}/combined.xlsx',sheet_name=f'{sheet[0]}',header=None,index=None)

Было несколько проблем с результатом: 1. Он перезаписывал лист на каждой итерации, поэтому итоговая рабочая книга имела 1 лист с информацией только о последней рабочей книге.2. Лист не сохранил форматирование

По сути, я пытаюсь скопировать каждый лист в одну рабочую книгу, как если бы я использовал команду копирования листа Excel без необходимости делать это 50 раз.

...