JMa*_*Max 100 excel excel-2007 xlsm xlsb
由于Excel 2007中,微软已经分裂的经典.xls格式的多种格式(特别是.xlsx,.xlsm,.xlsb).我理解.xlsx格式的用途和目的没有问题,但我仍然想知道在创建包含某个VBA的文件时是否应该使用a .xlsm或.xlsb格式.
当然,您可以在网上找到一些主题,例如:
.xlsb)我从最后一个链接中理解的是,这.xlsm是某种XML格式,因此需要自定义功能区选项卡.
除了格式之间的概念差异(.xlsm基于XML VS .xlsb是二进制文件),使用任何此文件时是否有任何实际差异(除了功能区自定义)?
你有没有看到使用这些格式的任何真正的区别?
Aar*_*oma 85
.xlsx加载时间长4倍.xlsb,保存时间延长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 ?
??????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
(硬件:Core2Duo 2.3 GHz,4 GB RAM,5.400 rpm SATA II HD; Windows 7,在其他进程的负载下.)
除此之外,应该没有差异.更确切地说,
两种格式都支持完全相同的功能集
引自2006-08-29的这篇博客文章.所以也许.xlsb不支持Ribbon代码的信息比上面的引用更新,但我认为你的论坛来源是错误的.当破解打开二进制文件时,它似乎浓缩地模仿OOXML文件结构1对1:来自2006-08-07的博客文章
Tim*_*ams 60
它们都很相似,因为它们本质上是包含实际文件组件的zip文件.您可以通过用.zip替换扩展名并打开它们来查看内容.与xlsb的区别似乎是组件不是基于XML的,而是二进制格式:据说这在处理大文件时很有用. http://blogs.msdn.com/b/dmahugh/archive/2006/08/22/712835.aspx
仅出于后代目的,这是来自多个外部来源的有关Excel文件格式的文本。在此问题的其他答案中提到了其中一些,但未复制必要内容。
1. 2006年8月22日,道格·马哈格(Doug Mahugh):
...新的XLSB二进制格式。像Open XML一样,它是一种全保真文件格式,可以存储您可以在Excel中创建的任何内容,但是XLSB格式针对性能进行了优化,这是纯XML格式无法实现的。
XLSB格式(有时也称为BIFF12,如“ Office 12的二进制文件格式”)使用与Open XML格式和XPS使用的相同的开放包装约定。因此,它基本上是一个ZIP容器,您可以使用任何ZIP工具将其打开以查看其中的内容。但是,您可以在包中找到.BIN部分,而不是包中的.XML部分。
本文还引用了有关BIN格式的文档,篇幅太长,无法在此处进行复制。
2. 2006年8月29日发布的MSDN存档中反过来引用了关于XLSB格式的博客文章:
即使我们做了很多工作来确保快速有效地打开我们的XML格式,但是这种二进制格式对于Excel来说打开和保存的效率仍然更高,并且可以对包含许多内容的工作簿进行一些性能改进。数据,否则在打开过程中将需要大量XML解析。(实际上,我们发现,在许多情况下,新的二进制格式比旧的XLS格式快。)而且,此文件格式没有无宏版本–所有XLSB文件都可以包含宏(VBA和XLM) 。在所有其他方面,它在功能上均等同于上述XML文件格式:
文件大小–两种格式的文件大小都大致相同,因为这两种格式都是使用zip压缩体系结构保存到磁盘的–两种格式都使用相同的打包结构,并且具有相同的部件级结构。功能支持-两种格式都支持完全相同的功能集运行时性能-加载到内存后,文件格式对应用程序/计算速度没有影响转换器-两种格式将具有相同的转换器支持
XLSB格式还专用于嵌入在excel启动文件夹(XLSTART)中的隐藏工作簿文件中的宏。
在XLSTART文件夹中使用xlsm或xlsb进行快速且肮脏的测试:
Measure-Command { $x = New-Object -com Excel.Application ;$x.Visible = $True ; $x.Quit() }
Run Code Online (Sandbox Code Playgroud)
xlsb(二进制)为0.89s,xlsm格式(zip文件中的xml)中具有相同内容的1,3s
| 归档时间: |
|
| 查看次数: |
158638 次 |
| 最近记录: |