自Excel 2007以来,Microsoft已将经典.xls
格式拆分为多种格式(特别是.xlsx
,.xlsm
,.xlsb
)。我理解.xlsx
格式的用途和目的没有问题,但我仍然想知道在创建包含某个VBA的文件时是否应该使用.xlsm
或.xlsb
格式。
当然,您可以在网上找到一些主题,例如:
.xlsb
的参考号)我从上一个链接中了解到,.xlsm
是某种XML格式,因此需要自定义功能区选项卡。
超出概念格式之间的差异(.xlsm
基于 XML VS .xlsb
是二进制文件),使用任何此文件时是否有任何实用差异(除了功能区自定义)?
使用任何这些格式时,您是否见过任何真正的差异?
答案 0 :(得分:83)
.xlsx
加载时间比.xlsb
长4倍,并且保存时间长2倍,文件大1.5倍。我在生成的工作表上对此进行了测试,该工作表包含10'000行* 1'000列= 10'000'000(10 ^ 7)个简单链式=…+1
公式的单元格:
╭──────────────╥────────┬────────╮
│ ║ .xlsx │ .xlsb │
╞══════════════╬════════╪════════╡
│ loading time ║ 165s │ 43s │
├──────────────╫────────┼────────┤
│ saving time ║ 115s │ 61s │
├──────────────╫────────┼────────┤
│ file size ║ 91 MB │ 65 MB │
╰──────────────╨────────┴────────╯
(硬件:Core2Duo 2.3 GHz,4 GB RAM,5.400 rpm SATA II HD; Windows 7,在其他进程的负载较重的情况下。)
除此之外,应该没有差异。更准确地说,
两种格式都支持完全相同的功能集
引用此博客post 2006-08-29。因此,.xlsb
不支持功能区代码的信息可能比上部引用更新,但我认为您的论坛来源是错误的。当破解打开二进制文件时,它似乎在2006-08-07
答案 1 :(得分:60)
它们都很相似,因为它们本质上是包含实际文件组件的zip文件。您可以通过用.zip替换扩展名并打开它们来查看内容。与xlsb的区别似乎是组件不是基于XML的,而是二进制格式:据说这在处理大文件时很有用。
https://blogs.msdn.microsoft.com/dmahugh/2006/08/22/new-binary-file-format-for-spreadsheets/
答案 2 :(得分:9)
有人可能认为xlsb只比xlsm有优势。 xlsm是基于XML而xlsb是二进制的这一事实是,当工作簿损坏发生时,你有更好的机会修复xlsm而不是xlsb。
答案 3 :(得分:6)
仅供后人使用,这里是来自几个外部来源的关于Excel文件格式的文本。其中一些已经在这个问题的其他答案中被提到,但没有复制基本内容。
<强> 1。来自Doug Mahugh, August 22, 2006 :
...新的XLSB二进制格式。像Open XML一样,它是一个 全保真文件格式,可以存储您可以创建的任何内容 Excel,但XLSB格式已针对性能进行了优化 纯XML格式无法实现。
XLSB格式(有时也称为BIFF12,如“二进制” Office 12“的文件格式使用相同的Open Packaging Convention 由Open XML格式和XPS使用。所以它基本上是一个ZIP 容器,您可以使用任何ZIP工具打开它,看看里面是什么。 但是,不是包中的.XML部分,你会找到.BIN部分......
这篇文章也提到了documentation about the BIN format,这里很难复制。
<强> 2。来自MSDN Archive, August 29, 2006 ,反过来引用了一篇关于XLSB格式的已经缺失的博文:
尽管我们已经做了很多工作来确保我们的XML格式 快速有效地打开,这种二进制格式仍然更多 Excel可以高效地打开和保存,并可以带来一些性能 包含大量数据的工作簿的改进 在Open过程中需要大量的XML解析。 (事实上,我们已经 发现新的二进制格式比旧的XLS格式更快 很多情况。)此外,没有此文件格式的无宏版本 - 所有XLSB文件都可以包含宏(VBA和XLM)。在所有其他 尊重,它在功能上等同于上面的XML文件格式:
文件大小 - 两种格式的文件大小大致相同,因为 这两种格式都使用zip压缩架构保存到磁盘 - 两种格式都使用相同的包装结构,两者都具有相同的包装结构 部分结构。功能支持 - 两种格式都完全支持 相同的功能集运行时性能 - 一旦加载到内存中, 文件格式对应用程序/计算速度没有影响 转换器 - 两种格式都具有相同的转换器支持
答案 4 :(得分:5)
XLSB格式也专用于嵌入在excel启动文件夹(XLSTART)中的隐藏工作簿文件中的宏。
快速&amp;在XLSTART文件夹中使用xlsm或xlsb进行脏测试:
Measure-Command { $x = New-Object -com Excel.Application ;$x.Visible = $True ; $x.Quit() }
带有xlsb(二进制)的0,89s与带有xlsm格式相同内容的1,3s(zip文件中的xml)......:)