夜雨聆风学习资料网

ARTICLE · 1258032

几十兆的 Excel 大表又慢又卡?不删一行数据,教你一招原地起飞

几十兆的 Excel 大表又慢又卡?不删一行数据,教你一招原地起飞

双击一个 80MB 的年终汇总表。

屏幕右下角卡在“正在读取:18%”,风扇开始狂转,鼠标指针变成转个不停的蓝色圆圈。你点了一下窗口,标题栏立刻变成灰白色,天空飘来几个字:(未响应)。

等它终于缓过神打开,你改了两个数字,顺手按了下 Ctrl + S。好家伙,进度条又开始慢吞吞地爬,接杯水回来还没存完。

如果你每天都要和几十万行数据、满屏的 VLOOKUP、XLOOKUP或者几十个数据透视表打交道,这种折磨一定不陌生。

大多数人遇到表格卡顿,第一反应是去删公式、清格式,或者怪公司发的电脑配置太差。

其实,你只需要在“另存为”的时候,把文件后缀从默认的 .xlsx改成 .xlsb。

一行数据不用删,一个公式不用改,文件体积当场缩水 30% 到 50%,打开和保存的速度直接快上 2 到 4 倍。

PART 01

为什么默认的 .xlsx 越用越慢?

要搞懂 .xlsb为什么快,得先看看我们用了十几年的 .xlsx到底是个什么东西。

很多人不知道,.xlsx本质上根本不是一个单一文件,而是一个伪装成表格的 ZIP 压缩包。

不信你可以把电脑里任意一个 .xlsx文件的后缀改成 .zip,直接用解压软件打开。你会发现里面塞满了大大小小的文件夹,全是 .xml格式的纯文本文件。

你在表格里填的每一个数字、设的每一种底色、写的每一条公式,都会被 Excel 翻译成厚厚一摞像网页代码一样的 XML 文本标签:

<row r="1"><c r="A1" t="s"><v>0</v></c></row>

这种设计是为了开放和通用,但代价也很明显:太啰嗦了。

当你打开一个几十兆的 .xlsx大表时,Excel 必须在后台干三件苦力活:

1先在后台把整个 ZIP 压缩包解压;

2把里面成百上千行繁琐的 XML 英文标签逐字读出来;

3翻译成电脑内存能看懂的表格结构。

保存的时候更惨,它得把几十万行数据重新打包成文本标签,再压缩一遍。文件越大,CPU 花在“翻译文本”上的时间就越长,卡死也是家常便饭。

PART 02

.xlsb 是什么?为什么它能“原地起飞”?

.xlsb的全称是 Excel Binary Workbook(Excel 二进制工作簿)。它不是什么野路子插件,而是微软在 Excel 2007 里就和 .xlsx一起推出的官方亲儿子。

只不过它排在“另存为”下拉列表的第三、四个位置,平时很少有人往下多看一眼。

.xlsb放弃了冗长的 XML 文本标签,直接用计算机底层最喜欢的二进制流(BIFF12 结构)来存数据。

说白了,.xlsx就像是把数据写成了一篇辞藻华丽的公文,每次读写都要逐字逐句去翻译;而 .xlsb则是机器和机器之间的“加密速记电报”,内存长什么样,硬盘里就怎么存。

换用 .xlsb后,有三个肉眼可见的好处:

1. 体积直接砍掉三分之一到一半

没有了成千上万个重复的 <row>、<cell>文本标签,二进制编码的密度极高。

一个原本 60MB 的 .xlsx业务底表,直接另存为 .xlsb,体积通常会掉到 25MB~35MB左右。之前因为超过企业微信或邮箱附件上限发不出去的大表,换个后缀就能直接发送。

2. 打开和保存速度提升 2~4 倍

因为省去了“文本解析”这道最吃 CPU 的工序,Excel 读取 .xlsb几乎是直接往内存里灌数据。

原来打开要等 20 秒、保存要卡 10 秒的表格,换成 .xlsb后基本 3 到 5 秒就能搞定。那种顺滑感,谁试谁知道。

💡 客观补充:把文件加载进内存之后,两者在表格里平时算公式的速度是一样的。.xlsb省下的是打开、读取、自动保存和关闭文件时的漫长等待。

3. 原生支持 VBA 宏,还突破了公式长度限制

平时如果你在 .xlsx里写了段 VBA 宏代码,保存时 Excel 会弹窗逼你改存成 .xlsm格式,否则代码就会被清空。

而 .xlsb天生就支持存 VBA 宏,完全可以当成大号 .xlsm的平替。而且在二进制架构下,超长公式(最高支持 8192 个字符)和大型数据透视表缓存的处理都更加宽裕稳定。

PART 03

怎么开启?两步搞定

不需要安装任何软件,现在打开你的 Excel 就能用:

第一步:打开那个让你头疼的超大表格,直接按下键盘上的 F12键(快速呼出“另存为”窗口);

第二步:在下方的【保存类型】下拉框里,找到并选中 Excel 二进制工作簿 (*.xlsb),点击保存。

如果你长年都在处理几十兆的重度表格,甚至可以直接去【文件】→【选项】→【保存】里,把默认保存格式改成 .xlsb。

PART 04

别急着全盘替换,这 3 个缺点你得心里有数

既然 .xlsb又小又快,为什么微软不干脆把它设成默认格式,还要留着慢吞吞的 .xlsx?

因为任何技术都有取舍。在把文件全部改成 .xlsb之前,这三个局限你必须清楚:

1. 跨平台与第三方软件兼容性不如 .xlsx

.xlsx是公开的国际标准(OpenXML),不管你是用苹果自带的 Numbers、在线协作文档、各种 BI 报表系统,还是让程序员用 Python 的 openpyxl库去跑自动化脚本,大家都能无障碍读取。而 .xlsb是微软自己的二进制黑盒。虽然现在的 WPS 和新版 LibreOffice 也能打开它,但如果你要把表格上传到某些老旧的财务系统、OA 后台,对方的系统很可能会报错“不支持的文件格式”。更重要是的现在是AI的时代,如果让AI操作表格,更需要使用OpenXML格式的文件。

2. 文件一旦损坏,抢救难度大

前面说过,.xlsx本质是个存满文本的压缩包。万一哪天遇到断电导致文件损坏打不开,懂技术的人还能把后缀改成 .zip,把里面没坏的 XML 文本掏出来,救回绝大部分数据。但 .xlsb是一团紧密咬合的二进制数据,一旦底层损坏,外部工具很难直接扒出明文内容。所以用它时,记得养成开启自动备份的习惯。

3. 接收陌生人的 .xlsb 要留个心眼

正因为 .xlsb和 .xlsm一样能携带 VBA 宏代码,收到外部来历不明的 .xlsb文件时,如果顶部弹出黄色的“启用宏/启用内容”安全警告,千万别闭着眼睛乱点,确认是安全的内部业务表再开启。

PART 05

到底什么时候该用 .xlsb?

给你画条最简单的分界线:

📁 老老实实用 .xlsx

平时几百几千行的普通表格、需要上传到业务系统导入的文件、或者要发给外部客户和跨软件协作的文档。这时候文件本来就只有几百 KB,没必要换。

🚀 果断换 .xlsb

体积超过 20MB的本地大表、动辄几十万行的销售明细、挂了十几个跨表公式和数据透视表的财务模型、以及带了大量 VBA 代码嫌 .xlsm太慢的工作簿。

下次再遇到那个让你等得想砸键盘的巨无霸表格,别跟滚轮和进度条较劲了。按一下 F12,换上 .xlsb,体验一下什么叫丝滑。

💬 今日互动话题

你手头遇到过最大的 Excel 表格有多少 MB?打开它要等多久?欢迎在评论区聊聊你的“卡顿血泪史”!

相关学习资料