看完这篇,你再也不会存错Excel格式

说实话,我写这篇文章之前,先去翻了一下自己电脑。
嗯,桌面上还躺着三个.xls文件。
别笑。你可能也跟我一样——明明知道该用.xlsx,但总有一些"历史遗留问题"赖在那里,久了就懒得管了。
直到上个月,一个朋友跟我吐槽,说他花了一整天整理的数据,存完再打开,凭空少了三分之一。
我才觉得,这事儿值得认真写一篇。
所以今天聊聊Excel那两种后缀名的事。读完大概3分钟,3分钟后,你应该不会再在这个事上吃亏了。
先回答一个最核心的问题:.xls和.xlsx,到底差在哪?
很直接地说,差了一代。
.xls是Excel 97-2003时代的格式,2007年之后的新版格式就是.xlsx。到现在都快20年了,但很多人还在用旧格式。不是故意的,纯粹是不知道、没注意。
但这两者的差距,还真不是"新和旧"那么简单。
容量差了16倍!

直接上数字:
.xls,最大支持65,536行、256列。 .xlsx,最大支持1,048,576行、16,384列。
16倍。如果你做的只是填个表格、记个流水账,确实感受不到。但一旦涉及到数据导出、库存统计、财务对账——超过6万行是家常便饭。
超过会怎么样?没有任何提醒,保存的时候静悄悄地截断。
我那朋友就是这么中招的。公司系统导了8万条订单记录,他习惯性保存成了.xls。第二天一打开,后两万行凭空蒸发了,数据对不上,被领导一顿骂。花了两天重新导。

文件结构差了一代
说个冷知识:
.xls是二进制格式。什么是二进制?你就理解成一个封死的铁盒子——想看里面的东西,必须用Excel,否则打不开。一旦文件损坏,基本等于数据报废。
.xlsx不一样。它实际上是一个ZIP压缩包,里面装满了一堆XML文件(一种纯文本数据结构)。
什么意思?
你把一个.xlsx文件的后缀名改成.zip,双击解压,里面有个叫sheet1.xml的文件,用记事本都能打开,数据全在里面。
这么设计的好处是什么?第一,文件更小。同样的数据,.xlsx比.xls小30%到50%。发邮件、存网盘,都更省空间。第二,抢救数据方便。
这也是我要说的第三点。
.xlsx坏了还能救回来

这个问题你可能没遇到过,但遇到了就是大事。
一个.xls文件坏了,Excel会弹出那个熟悉的对话框——"文件无法读取",然后就没有然后了。
但.xlsx坏了呢?
步骤很简单:
把后缀从.xlsx改成.zip 解压 找到xl文件夹里的sharedStrings.xml或者对应sheet的.xml 数据就在里面躺着
不一定100%完整,但大概率能抢救个七七八八。
这个技巧,值不值得你花3分钟看完这篇文章?

好了,说重点:怎么选?
其实判断标准就一条——除非你知道对方只能用老版Excel,否则一律存.xlsx。
展开来说:
日常自己用 → 存.xlsx 数据超过6万行 → 必须.xlsx(没得选) 发邮件给别人 → 存.xlsx(体积小、兼容性好) 对方是上了年纪的公司、还在用Office 2003 → 老老实实存.xls 要写宏代码(VBA)→ 存.xlsm(带宏的专用格式)
简单粗暴的核心原则:存新的,别存旧的。
不是什么花里胡哨的追求,纯粹是对自己数据的负责。一个文件格式的选择,背后可能是几个小时的心血。
最后,不如现在就做一件事。
打开你电脑上任何一个.xls文件,点「文件」→「另存为」,在类型里选"Excel工作簿(*.xlsx)"。
五秒钟的事。
花五秒钟,省掉未来可能的一整天。
如果觉得有用,可以转给身边还在用.xls的朋友。有些坑,一个人踩过就够了。
夜雨聆风