
大家好,我是老罗软件,最近公司有一批Excel文件,需要对每个excel进行表处理。单个excel的合并非常简单,但多个文件就相当耗费人力,今天老罗就是帮大家来解决这个问题的。
合并有两种情况:
1. 同表内部合并: 同一个excel文件内不同表格的合并。
2. 不同表的合并: 不同excel文件的表格进行对比。
有一个excel, 内部有两个表,需要把右边表的4月,5月销量合并到左边表的1月销量的后面,根据产品名称来匹配。 如下图:

千万不能简单的复制粘贴, 因为产品排序是不一样的(左表第一个是黄桃,右表第一个是电饭锅)。
意思就是左表和右表不在同一个excel里面,有两个excel, 如下图

单个excel的合并,我想正常人也应该会操作,但是有几百个这样的excel需要操作合并,大部分人都是打开wps,然后一个一个手动处理, 这样不加班才怪!

如果你想早点下班,抛开这些重复的繁琐步骤,节省更多时间充实自己,就请往下看。
这是一个专业解决excel多文件处理的方案, 找到 Excel功能大全, 然后在弹出的框里点击 ”数据合并“

我们先进行同表内数据合并, 将右表的4,5月销量合并到坐标的C,D列位置(通过产品名称匹配)。 有10个excel都需要这样合并,随便打开一个如下图:

软件打开后, 我们设置好界面的参数

待合并表设置(左表的设置)
Excel目录: 就是你要操作的一批excel所在的位置。 查找列: 匹配条件列,也就是左边表的产品名称这一列。 起始位置:合并数据的填充起始位置, 也就是左边表的C1位置(标题那个位置)。
合并表设置(右表的设置)
合并文件: 为空,同表的不同table合并。 查找列: 右表的产品名称列。 合并范围: 选择 合并到左边表的数据范围。 G1代表G列的标题位置(第一个单元格)。 sheet范围: 一般不填 。 表示其它sheet的数据也会合并过来。 设置好之后,点击开始处理, 程序会一条一条处理, 执行完,打开结果文件,随便选取一个结果excel,如下图:

不同表的合并,参数设置都一样的意思, 只是需要将合并文件,改成独立的excel文件位置,也就是你要合并的独立的excel文件:

如果您有疑问可以一起来探讨,功能就介绍到 这里 ,希望能帮助大家,感谢!!!
非技术人员不需要观看!! 这里设计到的技术复杂, 我也就就简单讲解实现原理。 软件是基于Python开发的现代化办公自动化软件,主要使用了如下技术架构: 1. PySide6 (Qt6) - 现代化GUI界面框架: 2. springboot: excel的数据脱敏是通过后端java实现的。 3. 文件处理:os.walk() - 递归遍历目录结构。 4. http请求: requests框架。 部分代码解析
项目的 开始 按钮,会开启一个QThread线程去处理,首先是获取excel目录, 然后通过os.walk遍历目录获取到所有文件,然后一个一个进行处理,处理的业务代码如下:
from api.excel_api import ExcelAPI
class MergeService:
"""Excel合并服务"""
def __init__(self):
self.excel_api = ExcelAPI()
def merge_excel_files(self, excel_file, output_file, args):
lookup_col = args['lookup_col']
start_cell = args['start_cell']
target_file = args['target_file']
target_lookup_col = args['target_lookup_col']
extract_range = args['extract_range']
sheet_range = args['sheet_range']
if not sheet_range:
sheet_range = "0,1000"
if not target_file:
# 代表要合并当前表的其它sheet
target_file = excel_file
sheet_range = "1," + sheet_range.split(",")[1]
startSheetIndex = 0
endSheetIndex = 0
try:
startSheetIndex = int(sheet_range.split(",")[0])
endSheetIndex = int(sheet_range.split(",")[1])
except Exception as e:
raise Exception("Sheet范围填写错误")
self.excel_api.merge(excel_file, output_file, target_file, {
"lookupColumnA": lookup_col,
"lookupColumnB": target_lookup_col,
"mergeStartRange": start_cell,
"sourceRange": extract_range,
"startSheetIndex": startSheetIndex,
"endSheetIndex": endSheetIndex
})代码没有开源噢。如果您有技术合作意向,还请联系本人。今天就介绍到 这里 ,希望能帮助大家,感谢!!!
单个文件的合并我们用wps这些有名的工具就可以了, 但是针对多文件批量一键处理还可以尝试我文章中的介绍方法,可以为你提高很大的工作效率,让你有时间充实自己,而不是像机器人一样做重复的工作,没有任何新的收获。 就说到这里了, 如帮助到你了,还请点个赞,感谢!!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。