1、什么是复合文档?
可能这个名字没有听说过,但是只要使用过Windows电脑的,其实都接触过这种结构的文件,只是没有注意到而已。
- 最可能接触到的就是一个名称叫做Thumbs.db的文件,只要操作电脑,打开了图片,系统就会在图片的同一个文件夹下生成这样一个文件,但默认是隐藏的,所以一般也看不到!
- 2003版本以前的Office文件,像Excel(后缀.xls),Word(后缀.doc)的文件,都是使用复合文档结构来存储的。
- 2007版本以上的Office文件,如果设置了打开密码,仍然是使用复合文档结构来存储的。
- 2007版本以上的Office文件,如果编写了VBA代码,在文件的压缩包里,会有个vbaProject.bin文件,也是使用复合文档结构来存储的。
详细请看微软官方文档: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cfb/53989ce4-7b05-4f8d-829b-d08d6148375b
2、解析复合文档有什么用
01
深入了解Excel的文件结构
解析复合文档,能够更加深入理解Excel的文件结构,虽然2007版本以上的Excel已经 换成了xml标记语言存储,但是VBA代码相关的vbaProject.bin文件还是使用了复合文档结构。
02
直接读取Excel VBA数据
如果想不打开Excel文件来读取Excel的数据,一般使用ADO技术就能做到。
但是如果想要直接获取VBA代码,就只能通过解析文件结构获取,通过解析复合文档,解析出模块的数据流,再进一步进行解析就可以。
03
实现一些特殊功能
- VBA工程密码破解
- VBA模块隐藏
主要参考文章:
http://club.excelhome.net/thread-227502-1-1.html