|
要想知道一个被损坏的excel文档还能提取出多少用户的数据,先得搞清楚Excel文档的存储结构!
Excel文档属于复合文档,它是按复合文档的存储格式来保存数据的,word,ppt也属于复合文档,但是每种复合文档中的流格式是不一样的!对于word文档,用户的文本存储在worddocument流中,而在Excel文档中,用户的数据存储在workbook流中.workbook流是以记录的形式来组织数据的,workbook流中的记录有很多,不同的信息由不同的记录表式,workbook流的记录以下面的顺序来存储数据:
1 0908记录:表示一个流开始
2 E100记录:用户接口记录
3 5C00记录:创建文件的用户名
4 3D01记录:页标签索引
5 1900记录:密码保护
6 1E04记录:数字格式
7 E000记录:扩展数字格式
8 6001记录:Natural Language Formulas Flag
9 8500记录:页标签信息
10 FC00记录:共享字符串表
11 0A00记录:流结束
12 0B02记录:索引记录
13 0802记录:行描述
14 单元格记录(文本单元格及数字单元格)
15 0A00:流结束
其中,1-11号记录是全局记录,只有一个,12-15号记录为工作表的记录,一个工作表对应这一套记录!其中不是很重要的记录没有提!
全局流中的共享字符串表记录(FC00)是很重要的,它是整个文档中字符串的集合.例如:你的工作表中有三个单元格,文本信息分别是字符串A,B,A,其中有二个单元格是一样的字符串,这时,共享字符串表就只存储字符串A和B,并编号,而在单元格记录中只记录该单元格的字符串编号,因此,单元格记录中并没有存储真正的文本信息!
工作表流中的单元格信息记录是比较重要的,凡是单元格中的值是数字的,单元格记录中都会存储它的真实数据!
综上所述,一个受损坏的Excel文档,还能恢复出多少数据?
如果workbook流没有损坏,该文档的所有数据都能恢复出来!
如果workbook中的共享字符串表被破坏,文档中的所有文本单元格信息都丢失了!只可能恢复出数字部分的单元格信息!
如果workbook中的单元格记录被破坏,单元格的信息都丢失,单元格的内容不可能恢复出来了!
以上是我对Excel文档的学习和认识,网上资料比较多,但真正有用的资料我没有找到多少,大部分都是重复,也有可能是我没有找到!不妥之外,欢迎广大网友纠正!
|
|