什么时候应该使用xlsm或xlsb格式?

时间:2011-10-19 12:55:13

标签: excel excel-2007 xlsm xlsb

自Excel 2007以来,Microsoft已将经典.xls格式拆分为多种格式(特别是.xlsx.xlsm.xlsb)。我理解.xlsx格式的用途和目的没有问题,但我仍然想知道在创建包含某个VBA的文件时是否应该使用.xlsm.xlsb格式。

当然,您可以在网上找到一些主题,例如:

我从上一个链接中了解到,.xlsm是某种XML格式,因此需要自定义功能区选项卡。

超出概念格式之间的差异(.xlsm基于 XML VS .xlsb二进制文件),使用任何此文件时是否有任何实用差异(除了功能区自定义)?
使用任何这些格式时,您是否见过任何真正的差异?

5 个答案:

答案 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

中浓缩地模仿OOXML文件结构1对1:博客article

答案 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)......:)