Я пытаюсь взять данные из других листов Excel / CSV и добавить их в существующую книгу / рабочий лист. Приведенный ниже код работает с точки зрения добавления, однако он удаляет форматирование не только листа, который я добавил, но и всех других листов в книге.
Насколько я понимаю, причина этого заключается в том, что я читаю весь ExcelWorkbook как словарь, превращаю его в Pandas Dataframe и затем переписываю обратно в Excel. Но я не уверен, как поступить иначе.
Как мне нужно изменить свой код, чтобы он добавлял только те данные, которые мне нужны, и оставляя все остальное нетронутым? Является ли панда неправильным путем?
import os
import pandas as pd
import openpyxl
#Read Consolidated Sheet as Dictionary
#the 'Consolidation' excel sheet has 3 sheets:
#Consolidate, Skip1, Skip2
ws_dict = pd.read_excel('.\Consolidation.xlsx', sheet_name=None)
#convert relevant sheet to datafarme
mod_df = ws_dict['Consolidate']
#check that mod_df is the 'Consolidate' Tab
mod_df
#do work on mod_df
#grab extra sheets with data and make into pd dataframes
excel1 = 'doc1.xlsx'
excel2 = 'doc2.xlsx'
df1 = pd.read_excel(excel1)
df1 = df1.reset_index(drop=True)
df2 = pd.read_excel(excel2)
df2 = df2.reset_index(drop=True)
#concate the sheets
mod_df = pd.concat([mod_df, df1, df2], axis=0, ignore_index = True, sort=False)
#reassign the modified to the sheet
ws_dict['Consolidate'] = mod_df
#write to the consolidation workbook
with pd.ExcelWriter('Consolidation.xlsx', engine='xlsxwriter') as writer:
for ws_name, df_sheet in ws_dict.items():
df_sheet.to_excel(writer, sheet_name=ws_name, index=False)