今早修bug时产品经理突然甩来五个格式各异的xlsx表格,要求午饭前合并成统一报表。刚开始没当回事,心想用线上转换工具三分钟搞定,结果踩坑踩到差点把键盘摔了。
第一次尝试直接翻车
随手打开某在线转换网站,把五个文件往里一丢。进度条卡在80%死活不动,直接弹窗报错「文件包含特殊字符」,可表格里明明全是数字!气得我重启三次电脑,结果每次报错提示都不一样——有时说内存不足,有时干脆白屏,最绝的是有次把150行的表格吞得只剩3行。
- 大于30MB的文件别用网页工具,跟抽奖没区别
- 表格里带百分号或货币符号?准备好当小白鼠
本地软件拯救计划
掏出尘封多年的某办公软件,导入时特意勾选「忽略特殊格式」。这回终于看到合并进度条了,正想泡杯咖啡庆祝,突然发现:
- 身份证尾数全变成4.21E+17(科学计数法坑死人)
- 客户手机号186开头的全显示成186(后面数字被吞)
- 最要命的是合并后的表格里,产品批号2023-08变成「2023年8月」
手忙脚乱折腾格式刷时,软件突然闪退。找回自动保存文件一看,合并表里的备注栏全变成###乱码,当时后背直接冒冷汗——这可是客户明天要的投标数据!
终极大招:土办法+笨工具
眼看deadline逼近,干脆掏出终极方案:
- 把每个xlsx另存成csv格式(相当于扒掉复杂外衣)
- 用记事本打开csv手动删掉带%的行(终于摆脱魔鬼符号)
- 开Excel新建空白表,用「数据」→「从文本」导入csv(这里藏着重头戏)
在文本导入向导第三步狂点「文本格式」按钮(防止数字变日期),遇到身份证/银行卡这种超长数字时,还得提前在csv里加个\t。用PowerQuery合并时手都在抖,直到看见完整的600行数据才敢喘气。
救命心得:现在手机备忘录存着三条保命法则:
- 合并前先在原文件第一行插入空白行(防吞表头)
- 含公式的单元格通通复制→选择性粘贴→值(防合并后变乱码)
- 日期字段统一写成2023/08/01格式(斜杠比横杠安全十倍)
意外收获的骚操作
上周帮财务妹妹处理年度报表时发现新大陆:把xlsx拖进WPS表格,另存成「ET」格式再转换,居然能避开90%的格式错乱!测试时故意在单元格里写「1月1日」,转换后老老实实显示文本,再也没自作聪明变日期。虽然要多转一道手,但总比数据报废强。
最魔幻的是前天——当我把这份血泪总结发到技术群,有个前同事突然私聊:「你遇到的吞行问题,是不是用了XX品牌的转换器?」原来他们团队去年就栽在这个坑里,当时把客户三年的销售记录合并成空白表,被骂到差点集体辞职。发现是转换器遇到空白行就摆烂,现在他们宁可雇实习生手动复制粘贴...
(正在敲这行字时屏幕突然闪屏,吓得我秒按Ctrl+S。别问,问就是被转换器虐出的 PTSD)