什么时候.xlsb文件比* .xlsx大?

我知道一般.xlsb文件比.xlsx文件小。 不过,我只是将一个大的.xlsx文件保存为.xlsb(讽刺地是为了减小文件大小),而.xlsb版本则明显更大。 对于完全相同的数据,我已经从160,188KB(在.xlsx中)变为254,314KB(在.xlsb中)。

该文件有两个选项卡。 一个有28列,约30万行。 并不是所有的单元格都被填充,但是大部分单元格都有各种文本和数字值(包括一个长度大约1000字符的string)。

第二个选项卡在单个单元格中只有一行文本。

没有公式,命名范围,数据透视表或类似的东西。 我完全没有改变的文件,我只是打开.xlsx做了保存和select.xlsb。

所以我真的很惊讶看到.xlsb比.xlsx版本大得多,我想知道:在什么情况下会出现这种情况?

长话短说:两种格式文件大小差别不大。

二进制文件只是在打开或保存时提供稍好的性能。

引用Diego Oppenheimer在博客上发表的文章:

文件格式2 – Excel二进制文件(XLSB文件)

Excel二进制格式是Excel 2007的第二种完全保真格式。它类似于结构中的Office Open XML格式 – 一组相关的部分,在一个zip容器中 – 除了每个包含XML的部分不是每个部分都包含二进制数据

尽pipe我们已经做了很多工作来确保我们的XML格式能够快速高效地打开,但这种二进制格式对于Excel打开和保存仍然更有效率 ,并且可以为包含大量数据,或者在Open进程中需要大量的XMLparsing。 在所有其他方面,它在function上等同于上面的XML文件格式:

  • 文件大小 – 两种格式的文件大小大致相同 ,因为两种格式都使用zip压缩保存到磁盘
  • 体系结构 – 两种格式都使用相同的封装结构,并且都具有相同的部分级结构。
  • function支持 – 两种格式都支持完全相同的function集
  • 运行时性能 – 一旦加载到内存中,文件格式对应用程序/运算速度没有影响
  • 转换器 – 两种格式都将具有相同的转换器支持

来源: 所有关于文件格式 (我join的亮点)