推荐使用 xlsb 格式保存 Excel 文件

作者: , 共 832 字 , 共阅读 0
系列:办公自动化

查看该系列所有文章

之前对普通 Excel 文件,我都保存为默认的 xlsx 格式,带 vba 的保存为 xlsm 格式。最近从同事那里见到一个高大上的 excel 文件格式: xlsb。我学习了一下,觉得甚为强大,在此推荐一下。

xlsb 和 xlsx、xlsm 文件格式基本类似,它们都是压缩文件包(将后缀改为 zip 即可解压),区别在于, xlsx 和 xlsm 的压缩包里面的内容都是基于 XML (文本,可以直接用写字板打开阅读),而 xlsb 压缩包里的内容则是二进制文件(无法直接打开阅读)。

xlsb 的好处是:

  • 文件更小。xlsb 的文件更小,对保存大 Excel 文件很有用。
  • 打开和保存的速度更快。EXCEL 直接使用二进制文件比解释 XML 文件速度更快。

我自己的一个 15M 的 XLSM 文件,保存为 xlsb 后只有 5M ,打开和保存的速度也明显加快。有人做了一个简单的测试:文件内容是 10000*1000 个单元格,每个单元格都是一个=+1的公式。对这个文件而言,xlsb 文件的打开速度是 xlsx 文件的四倍,保存速度快一倍,文件小三分之一

.XLSX .XLSB
打开速度 165s 43s
保存速度 115s 61s
文件大小 91MB 65MB

而在其它方面, xlsb 和 xlsx、xlsm 并无区别, xlsb 格式拥有 excel 全部功能,微软对于它的向下兼容是一样的( Excel 2003 在安装转换器的情况下同样可打开 xlsb 文件)。当文件被读入内存后,两种格式在计算时并无差异。

xlsb 的唯一劣势是 xlsx 可以更好地与其它程序、尤其是其它平台的交互,因为 xlsx 基于更标准化的 XML 格式。但普通用户用不到这种高大上的技术,所以,对于普通用户而言,推荐将 EXCEL 的默认保存格式设置为 XLSB 格式。Excel 选项的「保存」页面可进行该项设置,如下图:

image

Q. E. D.

系列: 办公自动化 »
键盘流(指尽量使用键盘,少动用鼠标,尤其不要在鼠标和键盘之间来回切换)是我追求的目标。我工作中用的最多的软件是 Excel ,写代码写的最多的是 Excel/VBA。用得多了自然比较关注工作效率,所以我在 Excel 键盘流上略有心得,这里给大家分享一下。网上有很全的快捷键列表,但那不是我想写的,因为太多记不下来不实用。这里只列举一下我在实际工作中的的确确总是在用的,为自己方便,也共享给大伙们。
更新一下之前写的Excel 的数据库类,将其改成函数的形式,调用更简单(省却了生成类实例的步骤)。现在这个代码在工作中用了一年多,已经比较健壮。若有问题,请留言指出或与我联系。
类似文章:
编程 » Excel
Excel 中可设置每个单元格显示数字和文本的格式:
Excel 多表合并和查询是一个应用很广泛的问题。下面是一个简单的例子,我们需要从两张数据表里,得出每个行业的股票波动率平均值。第一个数据表保存了股票和行业的对应关系,有两列,第一列为股票名,第二列为每只股票对应的行业。第二张表保存了各个股票在各个交易日的收盘价和前收盘价,有四列,第一列是股票名,第二列为交易日,第三列和第四列分别为股票在这个交易日的前收盘价和收盘价。
2014-03-25 更新:我已经将该类修改成函数形式,并增加新功能,参见更新 Excel 的数据库查询函数库
键盘流(指尽量使用键盘,少动用鼠标,尤其不要在鼠标和键盘之间来回切换)是我追求的目标。我工作中用的最多的软件是 Excel ,写代码写的最多的是 Excel/VBA。用得多了自然比较关注工作效率,所以我在 Excel 键盘流上略有心得,这里给大家分享一下。网上有很全的快捷键列表,但那不是我想写的,因为太多记不下来不实用。这里只列举一下我在实际工作中的的确确总是在用的,为自己方便,也共享给大伙们。
编程 » Excel
香港这边没有 WIND ,部门的彭博也不在我的机器上,为了取个股票价格数据都得跑来跑去。一怒之下,我写了一个 Excel 的函数,用来获取行情数据。
编程 » Excel, VBA
某些时候需要打开 Excel 文件来获取或者写入数据,但又不希望跳出打开的 Excel 文件窗口,可以用下面的代码:
如果一个日期(或者时间),如果用字符串,比如"2010-10-04"的形式,各个系统都没有什么区别。在某些时候,将日期用数字表示,将大大增加对日期查找、比较的效率。而如果用数字来表示日期,在不同的系统之间差别就大了。
编程 » Excel, 数据库
在前面的文章里,我已经提到Excel 数据本身可以当做一张 SQL 查询的数据表,并在 Excel 内进行数据库运算操作。数据库查询函数可以用我之前写的Excel 数据库操作函数类。我们可以用以下方式
编程 » Excel
最近看到一个比较有趣的问题, Excel 中以下表达式代表什么含义:
Excel 有一个很有用的功能是直接导入外部数据库或者使用外部数据源建立数据透视表和数据透视图。但比较可惜的是,这个数据源的查询语句是静态的,它无法根据日期自动修改(比如在应用中,我们希望每天获取的外部数据都是当天最新的数据),下面两个函数是修改外部数据源的 VBA 代码,调用它们就可以建立动态的数据源。
书评影评 » 电视剧
最近机缘巧合,我接触到了日本短剧《世界奇妙物语》,看了最近几年的特别篇故事,感觉不错,在这里推荐之。
风险管理 » VaR Primer
一个场景是所有风险因子的表现序列。历史场景是指风险因子在历史上某天的实际表现,随机场景则是计算机随机模拟生成的。通常蒙特卡洛模拟法需生成至少 1000 个随机场景,然后计算组合在每个场景下的损益,最后取 5%分位点得到组合的 VaR 值。