Python熊猫与现有工作表合并并保存

时间:2018-11-06 07:55:00

标签: python excel vba pandas

我想将多个Excel文件(1.xlsm,2.xlsm ....)合并为带有3张宏的[A.xlsm]文件

所以我尝试合并

# 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 :(得分:0)

我相信,如果您要使用启用了宏的工作簿,则需要使用keep_vba=True加载它们:

from openpyxl import load_workbook
XlMacroFile = load_workbook('A.xlsm',keep_vba=True)

答案 1 :(得分:0)

要保存单独的图纸,您可以执行类似的操作

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文件的单独工作表中。