硬盘爱好者 发表于 2012-4-13 22:50:07

Office Excel文件数据结构让你更了解TA

要想知道一个被损坏的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文档的学习和认识,网上资料比较多,但真正有用的资料我没有找到多少,大部分都是重复,也有可能是我没有找到!不妥之外,欢迎广大网友纠正!

weihai0220 发表于 2012-4-14 15:21:26

怎么感觉好像上午看过了。。。

weihai0220 发表于 2012-4-14 15:21:56

还是同一个作者。。。。你是不是一篇发了两次。。。

aoegery 发表于 2012-4-18 10:09:52

好东西!!!!!!!!

猎豹 发表于 2012-5-4 16:48:29

谢谢分享。

honey0806 发表于 2012-5-8 23:35:37

感谢楼主 总算对excel有一点基本的了解

qx77 发表于 2012-5-15 16:30:52

这个哪个版本的?

lb6189 发表于 2012-7-18 10:12:12

好东西!!!!!!!!

lkda152251 发表于 2012-7-20 01:20:50

正在接触wrod,excle数据这是最基本知识

wgy0129 发表于 2012-7-26 13:46:37

很不错。请问楼主还在研究么?我现在也在研究,可以互相交流下。
页: [1] 2
查看完整版本: Office Excel文件数据结构让你更了解TA