表格整理工具

表格整理工具

不写公式做 VLOOKUP:匹配查找、差异比对、去重、统计、列种类、脏数据清洗。
11.2 MB · Windows 64 位 · 单文件免安装
下载 表格整理工具(zip,含使用说明)
Windows 64 位 · 单文件免安装 · 免费,无需注册
用来收拾 Excel / WPS 表格里那些"手工干太累、又不好意思麻烦别人"的活儿。
免安装,双击就用,不需要装 Office 或 WPS 也能跑(它自己会读写 xlsx)。

一、文件清单:双击哪个?

打开目录 D:\你的工作目录\05_工具脚本\TableTidy\dist\

文件干什么用的
表格整理工具.exe← 双击这个。成品,免安装,可以拷到 U 盘、别的电脑上用(64 位 Windows)
table_tidy.py源码(界面 + 算法都在里面)
test_table_tidy.py自动化校验脚本,231 项检查(改代码后跑一下,确认没改坏)
verify_gui.py界面布局检查,确认控件没被挤出窗口
make_icon.py图标生成脚本

它不会动你的原文件。 所有结果都是"另存一份",原表一个字节都不改。


二、快速上手:你说的那个场景

"C 列的数据在 A 列有没有,有的话把对应的 B 列值放到 D 列"
  1. 双击 exe
  2. 点「主表」旁边的「浏览…」,选中你的表格
  3. 左上角「辅表」留空不用管(留空 = 就在这张表内部查找)
  4. 「匹配查找」页里四个框,工具已经帮你填好了默认值:
框默认意思
① 拿哪一列去查C用 C 列的值作为查找依据
② 到哪里查A到 A 列里找有没有
③ 取回B找到了就把同一行的 B 列值取出来
④ 结果写到D写到 D 列(D 列不存在会自动新建)
  1. 点「开始匹配」
  2. 会自动跳到「结果预览」页,先看看对不对
  3. 对了就点左下角「导出结果…」,默认文件名是 原文件名_整理结果.xlsx

结果预览页上方会显示一句话,比如:

【匹配查找】C 列 → 查本表的 A 列 → 取回 B 列 → 写入 D 列;忽略空格、忽略大小写、数值等价、全角半角。共处理 128 行:匹配到 120 行,未匹配 8 行。

那 8 行没匹配上的,就是你真正需要人工看一眼的。 这就是这工具省时间的地方。


三、六个功能分别管什么

1. 匹配查找(最常用)

上面那个场景。除此之外还能干这些:

⚠️ 一个安全提醒:如果 ④ 填的那一列原本就有数据,工具会弹窗告诉你"这一列原本有 N 个非空数据,继续会覆盖",你可以选择取消。默认填 D 的时候,如果你的表本来就 4 列以上、D 列有内容,就会遇到这个提示 —— 那时建议改填一个新列(写个列名,如 匹配结果)。

2. 差异比对

比两列(或者主表一列 vs 辅表一列),列出:

结果排成三列,一眼看清。适合核对"这两个名单对不对得上""发货清单和订单清单差哪些"。

3. 去重

按一列或几列判断重复,保留第一条(或最后一条)。

4. 统计数量

数一数:某个值出现了几次、有几个不重复、某列总共多少。

举个例子,按客户分组统计订单:

客户数量 行数数量 求和数量 平均值
甲4123
乙233
丙1

三个细节值得知道:

最常用的一招:想知道"哪些商品编码重复了、各重复几次",就按商品编码分组 → 只勾「行数」→ 排序选「次数从多到少」。比在 Excel 里拉数据透视表快。

5. 列种类

只看某一列到底有几种不同的值、各出现几次、占多少。比"统计数量"更直接 —— 一次只干一件事,填一列点一下就出结果。

出来长这样(看"商品编码"列):

商品编码出现次数占比(%)所在行号
P0021240.02,3,7,9,11,14,18,20,23,25,28,31
P001930.04,5,8,12,15,19,22,26,30
P003620.06,10,13,17,21,27
(空白)310.016,24,29

预览页上方会给出汇总:

【列种类】商品编码 列共 30 行,3 种不同值;空白 3 行,出现多次的 3 种。 最多:P002(12 次)。

三个规则:

「种类数」这个数字在哪看?就在预览页上方那句话里。A 列一共 8 种,比数重复项有用得多。

6. 文本清洗

对付"看着一模一样却匹配不上"的脏数据。这是从别处复制粘贴来的表格最常见的坑:

你看到的实际存的勾这个
10011001(全角)全角转半角
张三张 三(中间有空格)去掉所有空格
ABCabc转大写
1.51.50数值去掉多余小数位

清洗完再导出,或者清洗后另存一份当数据源。


四、匹配的"宽容度"—— 这工具最值钱的地方

表格对不上,九成不是数据错了,是格式不一样。「匹配查找」页里那四个勾选框,默认全开:

选项效果例子
忽略空格所有空格、换行、制表符、不换行空格都不算张 三 = 张三
忽略大小写字母大小写视为相同abc = ABC
全角半角等价全角转半角后比较ABC = ABC、123 = 123
数值等价数字的写法不同但值相同1.0 = 1 = 1e0、1,234 = 1234

全勾上就是最宽松的匹配,一般不用改。什么时候要改?


五、两种特殊情况

查找列里同一个值出现了多次

比如 A 列有两个"张三",一个在技术部一个在市场部。C 列查"张三"该返回哪个?

「特殊情况」里选:

建议:数据量大的时候先用"标记为多个"跑一遍,看看有没有潜在的匹配歧义,再决定用哪个策略。

没找到的时候


六、哪些格式能用

操作格式说明
读取.xlsx .xlsmExcel 和 WPS 都能存这两种,首选
读取.csv自动识别 UTF-8 / GBK 编码,逗号/分号/制表符分隔都能认
写出.xlsx .csv出来的文件 Excel、WPS 都能直接打开
不支持.xls .et .xlsb老格式和 WPS 私有格式

遇到 .xls 或 .et 文件怎么办?
在 Excel 或 WPS 里打开它,「另存为」→ 选 .xlsx,然后用本工具处理。这一步只需要做一次。

为什么不做 .xls 支持?那是 20 多年前的二进制格式,解析库又老又容易读错公式和日期。转成 xlsx 是最省事也最可靠的路子。

几个实操细节:


七、常见问题

Q:导出的文件在哪?
你点「导出结果…」时选的位置。默认文件名是 原文件名_整理结果.xlsx,放在和原文件同一个目录。

Q:结果预览只显示了 300 行 / 40 列,是不是只处理了这么多?
不是。预览只显示前 300 行方便看,实际处理的和导出的都是整张表(预览页会写清楚)。列超过 40 列时预览也只显示前 40 列,但导出一列不少。

Q:能撤销吗?
处理结果只存在内存里,重新点一次「开始匹配」就会覆盖上一轮结果。要留住哪一轮,先导出。

Q:会不会改坏我的原文件?
不会。全程只读原文件,结果一律另存。你甚至可以拿原文件在别的表格软件里开着,同时用这个工具处理。

Q:想批量处理一堆文件?
界面暂时只做单文件。如果真有这需求跟你说 —— 它底层是命令行的,可以写脚本批处理:

表格整理工具.exe match --file 表.xlsx --src-col C --look-col A --value-col B --to-col D --out 结果.xlsx

六个动作分别对应 match(匹配)/diff(比对)/dedupe(去重)/stat(统计)/kinds(列种类)/clean(清洗),
用 --help 能看到全部参数。比如统计数量:

表格整理工具.exe stat --file 表.xlsx --group-cols B --stat-col D ^
  --stat-ops count,sum,avg --stat-sort count_desc --out 统计结果.xlsx

列种类(看 A 列有几个品种):

表格整理工具.exe kinds --file 表.xlsx --kind-col A ^
  --kind-sort count_desc --with-rows --out 种类结果.xlsx

八、改代码之后怎么自检

# 功能校验(231 项)
C:\Users\你的用户名\.workbuddy\binaries\python\envs\gui\Scripts\python.exe test_table_tidy.py

# 界面布局校验(确认控件没被挤出窗口)
C:\Users\你的用户名\.workbuddy\binaries\python\envs\gui\Scripts\python.exe verify_gui.py

# 重新生成图标
...\python.exe make_icon.py

# 重新打包(打包前先清 build,见下面的说明)

打包命令:

...\Scripts\pyinstaller.exe --noconfirm --onefile --windowed ^
  --name TableTidy --icon app.ico --hidden-import openpyxl ^
  --distpath dist --workpath build table_tidy.py
打包前先清空 build 目录(分批删,每批不超过 45 个文件)。
别用 --clean 参数:它会批量删除几十个临时文件,触发系统批量删除保护,进程直接被拦死。

打包出来的是 dist\TableTidy.exe,记得手动改名成 表格整理工具.exe(改名前 verify_package.py 也能认)。
打完必须跑一遍验收:python verify_package.py —— 它会比对"exe 输出"和"源码输出"是否逐格一致、
确认 GUI 能起来不闪退、并探针验证 openpyxl 确实打进了包里。

*工具版本 v1.2.0 · 2026-09-22*
(v1.1.0 新增「统计数量」;v1.2.0 新增「列种类」)

用着有问题,或者有想要的功能?
直接发邮件到 26985331@qq.com,说明一下场景和现象就行。 工具会按反馈持续更新,更新记录会写在这一页。
Modbus 调试助手浮点数位模式转换器局域网设备扫描器BOM 汇总工具