2024-05-14 03:00:07 发布
网友
我有大约30本excel工作手册需要合并成一本。每个工作簿都有不同数量的工作表,但我需要从每个工作簿合并的工作表称为“输出”,并且此工作表中列的格式是一致的。
我需要从第一个文件导入输出表,然后附加其余文件并忽略标题行。
我试过用glob/pandas来做这件事,但没有成功。
你可以用openpyxl。下面是代码的草图:
from openpyxl import load_workbook compiled_wb = load_workbook(filename = 'yourfile1.xlsx') compiled_ws = compiled['Output'] for i in range(1, 30): wb = load_workbook(filename = 'yourfile{}.xlsx'.format(i)) ws = wb['Output'] compiled_ws.append(ws.rows()[1:]) # ignore row 0 compiled_wb.save('compiled.xlsx')
Clinton c.Brownley在Foundations for Analytics with Python中显示的方法:
在shell中执行,指示包含excel文件的文件夹的路径(确保定义所有工作簿的参数正确),然后执行excel输出文件,如下所示:
python script.py <the /path/ to/ excel folder/> < your/ final/output.xlsx>
脚本.py:
import pandas as pd import sys import os import glob input_path = sys.argv[1] output_file = sys.argv[2] all_workbooks = glob.glob(os.path.join(input_file, '*.xlsx')) all_df = [] for workbook in all_workbooks: all_worksheets = pd.read_excel(workbook, sheetname='Output', index_col=None) for worksheet, data in all_worksheets.items: all_df.append(data) data_concatenated = pd.concat(all_df, axis=0, ignore_index=True) writer = pd.ExcelWriter(output_file) data_concatenated.to_excel(writer, sheetname='concatenated_Output', index=False) writer.save()
这可能会被否决,因为这不是一个Python的答案,但老实说,我不会使用Python来完成这类任务。我认为你最好安装下面的加载项,并将其用于工作。
https://www.rondebruin.nl/win/addins/rdbmerge.htm
单击“在文件位置选择中合并文件夹中的所有文件”,然后单击“使用工作表名称”=“输出”,最后,我认为您需要“第一个单元格”。祝你好运!
你可以用openpyxl。下面是代码的草图:
Clinton c.Brownley在Foundations for Analytics with Python中显示的方法:
在shell中执行,指示包含excel文件的文件夹的路径(确保定义所有工作簿的参数正确),然后执行excel输出文件,如下所示:
脚本.py:
这可能会被否决,因为这不是一个Python的答案,但老实说,我不会使用Python来完成这类任务。我认为你最好安装下面的加载项,并将其用于工作。
https://www.rondebruin.nl/win/addins/rdbmerge.htm
单击“在文件位置选择中合并文件夹中的所有文件”,然后单击“使用工作表名称”=“输出”,最后,我认为您需要“第一个单元格”。祝你好运!
相关问题 更多 >
编程相关推荐