Добавить в существующий Excel без изменения форматирования - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь взять данные из других листов 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...