复合文档结构(13 页)Good is good, but better carries it.精益求精,善益求善。前言网络上,有一篇流传颇广的叫做《Excel 文件格式》的资料,是英文的,老实说,这篇资料对我关于“Excel 文件格式”的理解,起到启蒙的作用,但是,进一步老实说,这篇资料对于我的最终工作结果,几乎起不到任何作用。这篇被广泛如获至宝收藏的资料,是基于 BIFF2 的,BIFF 的意思是 Binary Interchange File Format(二进制交换文件格式),BIFF2 版本的 Excel 文件并不支持“合并单元格”,这对于我的工作是个致命的打击,无法“合并单元格”,谈何“所见即所得”?所以,我怀疑那些收藏的人,有没有仔细的用过这篇资料!当然包括我,我最早得到这篇资料至今少说也有 5 年了,也是到了最近实在不得不用的时候,才发现了这个问题。这也许是人之常情,被我怀疑的同学们不必为了这个跟我急!既然这样,那就得继续找资料了……于是找到一篇《excelfileformat》,也是英文的,这一篇很好,从 BIFF2-BIFF8,非常详尽的阐述了 Excel 的文件格式,老外们在这方面的态度还是比较仔细的,值得学习。但是问题又来了,仅 BIFF8 版本的 Excel 文件支持“合并单元格”!这个问题似乎很好解决,根据 BIFF8 的格式来做不就行了?当然行,是的,可以根据 BIFF8 的格式来做。做出来的文件也可以被 Excel 读取,但必须通过两次崩溃、修复后才能使用。为什么?!微软有一个“复合文档格式”,Office 从 97 到 2025 都采纳“复合文档格式”来组织文档,Word、Excel、PowerPoint 等等,都采纳这种格式来保存。据说微软最新又推出另一种格式,但是问题不大,于我的工作,“复合文档”已经够用了。“裸”的 BIFF8 版本的 Excel 文件,用 Excel 来打开,可能导致读写错误,进而导致崩溃,同时 Excel 的修复功能能够把它修复成“复合文档”。这是我的理解。有这样的问题,显然是不能提交给客户的。那么就必须给 Excel 文件“穿上”“复合文档”的外衣,要搞定 Excel 文件,必须先搞定复合文档。因此,“复合文档”成了通向我的工作的第一只拦路虎(为什么说“第一只”?因为后面还有)!必须解决掉。还得找资料……于是又找到一篇《compdocfileformat》,与前面提到的《excelfileformat》一同出自一个叫做“OpenOffice”的组织。我想我应该谢谢他们。值得一提的是,网上有人说这些文档的结构,微软官方并不公开,是一些黑客通过跟踪、...