Excel 意识:别让一个后缀,斩断整套数据自动化链路
- 2026-11-06 22:36:26
之前聊数据管理,更多是从数据表的角度展开。最近落地工具时才发现,不少同事使用 Excel 一直处在无意识状态,不清楚不同文件格式的能力差异,对.xls的依赖,积习很深。聊聊数据管理
这些年处理底稿,我一直用“VBA + PowerQuery”的组合。好处很实在,都是 Excel 自带功能,不用额外装软件。PowerQuery 从 2016 版才内置,天生不支持 xls,这是一道硬门槛。
xls 是早年 Office 97-2003 的二进制格式,上限仅 65536 行,很多现代功能底层就不兼容,早已落后于时代。即便换到 xlsx,遇到超大体量数据也会感到吃力,这时我们才会借助 DuckDB 或 Python 做进一步处理。
节前单位更新底稿模板,内容做了修订,格式依旧还是 xls。想来无非两个原因:老同事担心更换格式后版式错乱、打印出问题;或是长期习惯旧版 Office,不愿改动。下发的工具包里,大部分文件也都是 xls。早年写进去的 VBA 代码早就丢失,只剩几个孤零零的按钮,看着像是能运行,实则没有任何功能,成了失去灵魂的空壳。
这两天有同事使用我写的 PowerQuery 工具,数据始终加载不出来。右键超级表,刷新按钮是灰色;进到查询编辑器,里面一片空白。排查才发现,他直接把 xlsx 手动改成了 xls,整套工具就此失能。
仅仅这一步,PowerQuery 的运行环境直接消失。我反复强调 PowerQuery 的运行前提,但这类问题依旧时不时出现。很多人以为后缀只是文件名,改一改,文件内容不变。实际上,后缀决定文件底层结构,直接决定 Excel 可以启用哪些功能。
数据管理,核心不是安排专人兜底整理数据。真正要做到的,是一线编制底稿的人建立意识:新建、保存文件的时候,就要清楚这份数据后续会流向哪里、需要什么样的运行环境。一线人员就是数据源头,源头的容器选错,后面所有自动化工作,全都白费。Output 要正确,Input 正确是前提,不要幻想错误的输入,经过处理后还能产出正确结果。
现在用脚本处理表格也是同理,openpyxl 只认 xlsx。如果是 xls,只能依靠早已停止维护的旧类库,稳定性很差,极易出故障。
怀旧没问题,但 xls 不必再留恋。日常底稿使用 xlsx,带宏的文件选用 xlsm。百万行数据、超级表、PowerQuery、新函数,全都依托这个格式。(最近 Excel 推出了列表函数,我这边还没有收到更新推送)
指望工具去弥补不规范操作带来的错误结果,并不现实。公式、查询、代码都好打磨。最难的,是让大家建立底层的 Excel 意识:表格不是一张电子化的纸,它是存放数据、流转数据的容器。容器选错,再精心设计的工具,一个后缀就能废掉。
全员有意识,组织才有希望。躺平摆烂、等着别人兜底的 “公共汽车” 思维,终究是自毁长城。