Python панды объединяются и сохраняются с существующими листами - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу объединить несколько файлов Excel (1.xlsm, 2.xlsm ....) в файл [A.xlsm] с макросом, 3 листа

, поэтому я пытаюсь слить

# input_file = (./*.xlsx)
all_data = pd.DataFrame()
for f in (input_file):
    df = pd.read_excel(f)
    all_data = all_data.append(df,ignore_index=True, sort=False)
writer = pd.ExcelWriter(A.xlsm, engine='openpyxl')
all_data.to_excel(writer,'Sheet1')
writer.save()

доза кода не ошибка, но файл результата [A.xlsm] является ошибкой, чтобы открыть,

поэтому я изменяю расширение на A.xlsx и открываю.

это открытие в порядке, но исчезают все листы и макро.

как мне объединить несколько файлов xlsx в файл xlsm с макросом?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Чтобы сохранить отдельные листы, вы можете сделать что-то вроде

df_list = #list of your dataframes
filename = #name of your output file

with pd.ExcelWriter(filename) as writer:
    for df in df_list:
        df.to_excel(writer, sheet_name='sheet_name_goes_here')

Это запишет каждый фрейм данных на отдельном листе в выходной файл Excel.

0 голосов
/ 06 ноября 2018

Я считаю, что если вы хотите использовать книги с макросами, вам нужно загрузить их с keep_vba=True:

from openpyxl import load_workbook
XlMacroFile = load_workbook('A.xlsm',keep_vba=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...