嘿, 各位好呀紧接着上一篇, , 也就是那第三篇提到学会了Excel分批全部行读取, 今儿个咱要学办公自动化堪称神奇的技能, 啥技能? Excel批量合并不论你拥有十个表格, 还是一百个表格, 亦或是一千个表格, 代码都能够一键自动将它们合并成为一个汇总表格, 自此告别手动开展复制粘贴操作, 效率提升至原来的一百倍一、这节课能够实现些什么呢? 第二、前期准备必须要做文件夹: C:\excel\test放进所有准备合并的Excel格式必定得一样: 姓名、成绩等等。3、库已安装上一篇已装不用重复三、关键想法新手轻松明白, 创建一个空白的总的表格, 先写入表格头部姓名、成绩等等, 循环遍历读取每一个 Excel, 将每一个 Excel 的全部数据, 逐行依次添加到总的表格里, 保存最终的总的表格, 四、完整的代码复制之后直接运行, 不会报错import os from openpyxl import Workbook, load_workbook # 【必须改这里】 path C://excel//test// # 你的表格路径 # # 1. 创建一个新的总表 wb_total Workbook() ws_total wb_total.active ws_total.title 合并总表 # 2. 写入表头只写一次 ws_total[A1] 姓名 ws_total[B1] 成绩 current_row 2 # 从第2行开始放数据 # 3. 遍历所有Excel文件 for file_name in os.listdir(path): if file_name.endswith(.xlsx): print(f正在合并{file_name}) full_path path file_name wb load_workbook(full_path) ws wb.active # 4. 读取这个表格里的【所有行】 for row in range(2, ws.max_row 1): name ws[fA{row}].value score ws[fB{row}].value # 5. 写入总表 ws_total[fA{current_row}] name ws_total[fB{current_row}] score current_row 1 # 往下一行 # 6. 保存最终合并后的总表 wb_total.save(已合并总表.xlsx) print() print( 全部合并完成生成已合并总表.xlsx)五、运行效果六、代码关键点明确指出小白务必要看, 等于2意味着数据是从第2行开始进行书写的情况当中这里需要清楚第1行是作为表头的, 对于每一行而言是在范围从2开始直到ws的值加上1这个区间来进行读取的, 去读取每个表格里的所有数据行, 并且在每写一条数据之后, 会自动向下移动进一行, 还有七、常见问题。1、合并后数据错位克服: 全部 Excel 的栏都得相同A 栏为姓名, B 栏是成绩。2、表头重复出现解决表头只在总表里写一次不要循环3、只合并了部分文件解决路径正确文件必须是 .xlsx本篇所作的合并总结, 是要读取所有的 Excel 文件, 这其中还包括读取所有的行, 之后要写入总表, 几百个表格能够一键合并, 不会出现复制情况, 也不会出现粘贴情况, 并保证不出错, 这属于办公自动化里最常用的核心技能