安嫂:老安,我有一些格式相同的excel需要合并成一个汇总的excel,不想一个一个复制,你懂我的意思吧?
老安:没问题,excel我熟(熟个鬼,主要是之前做过一个次这种合并,按着博客一点一点来的,链接在这:如何快速将多个Excel表格合并成一个
然而,这次啪啪打脸,安嫂给的excel格式不能直接转载导入,需要做一些修改,得找点资料研究研究。那10,20分钟可都不一定能完事了,先写个脚本给安嫂安排上,然后再研究吧,python代码如下:

import sys
import openpyxl
import warnings
import os
from pathlib import Path

if __name__ == '__main__':
    warnings.filterwarnings("ignore")
    if len(sys.argv) != 3:
        print("参数错误!")
        sys.exit()
    excel_dir = Path(sys.argv[1])
    excel_summary = Path(sys.argv[2])
    if not excel_dir.exists():
        print("需要合并的excel文件夹路径不存在!")
        sys.exit()
    if not excel_dir.is_dir():
        print("需要合并的excel文件夹路径不合法!")
        sys.exit()
    if excel_summary.parent == excel_dir:
        print("excel汇总文件不能放在需要合并的文件夹内!")
        sys.exit()
    try:
        if not excel_summary.exists():
            workbook_summary = openpyxl.Workbook(excel_summary)
            workbook_summary.create_sheet("sheet1", 0)
            workbook_summary.save(excel_summary)
            workbook_summary.close()
        workbook_summary = openpyxl.load_workbook(excel_summary)
        workbook_summary_sheetnames = workbook_summary.get_sheet_names()
        workbook_summary_first_sheet = workbook_summary.get_sheet_by_name(workbook_summary_sheetnames[0])
        workbook_summary_first_sheet_rows_count = 1
        for parent, dir_names, filenames in os.walk(excel_dir):
            for filename in filenames:
                workbook_temp_name = parent + "/" + filename
                print(workbook_temp_name)
                workbook_temp = openpyxl.load_workbook(workbook_temp_name)
                workbook_temp_sheetnames = workbook_temp.get_sheet_names()
                workbook_temp_first_sheet = workbook_temp.get_sheet_by_name(workbook_temp_sheetnames[0])
                rows = workbook_temp_first_sheet.max_row
                columns = workbook_temp_first_sheet.max_column
                for r in range(1, rows+1):
                    for c in range(1, columns+1):
                        workbook_summary_first_sheet.cell(workbook_summary_first_sheet_rows_count, c).value = workbook_temp_first_sheet.cell(r, c).value
                    workbook_summary_first_sheet_rows_count = workbook_summary_first_sheet_rows_count + 1
                workbook_temp.close()
                workbook_summary_first_sheet_rows_count = workbook_summary_first_sheet_rows_count+1
        workbook_summary.save(excel_summary)
        workbook_summary.close()
    except Exception as e:
        print(e)

用pyinstaller生成exe,交差!

pip install pyinstaller
pyinstaller -F 脚本.py

靖安1016
23 声望3 粉丝

翻译多模态软件研发