安嫂:老安,我有一些格局雷同的excel须要合并成一个汇总的excel,不想一个一个复制,你懂我的意思吧?
老安:没问题,excel我熟(熟个鬼,次要是之前做过一个次这种合并,按着博客一点一点来的,链接在这:如何疾速将多个Excel表格合并成一个
然而,这次啪啪打脸,安嫂给的excel格局不能间接转载导入,须要做一些批改,得找点材料钻研钻研。那10,20分钟可都不肯定能完事了,先写个脚本给安嫂安顿上,而后再钻研吧,python代码如下:
import sysimport openpyxlimport warningsimport osfrom pathlib import Pathif __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 pyinstallerpyinstaller -F 脚本.py