关键词:XLS文件格式,XLS二进制文件
第一章 XLS文件和十六进制
1.1 通常我们把EXCEL的文件格式叫做BIFF,即BinaryInterchangeFileFormat的缩写,随着EXCEL的不断升级,其文件格式BIFF也在同步的更新与完善,因此对于不同版本的EXCEL有着不同的BIFF版本,下表对EXCEL目前最常用的版本和BIFF的部分版本进行了对照。
EXCEL版本 BIFF版本EXCEL8.0(EXCEL97)BIFF8EXCEL9.0(EXCEL2000)BIFF8EXCEL10.0(EXCELXP)BIFF8xEXCEL11.0(EXCEL2003) BIFF8x 其中BIFF8x为BIFF8的扩展版本,它在BIFF8的基础上改动了部分属性值。
1.2 结构知识
在介绍XLS的文件结构时,大家需要知道关于XLS二进制文件的一些基本的结构内容知识:
1、在文件数据的二进制存储中,低位8字节存放在地址的低位,高位8字节存放在地址的高位,因此在用十六进制编辑器来查看XLS文件时,对于一个完整的双字节,它的显示如0908,那么他的十六进制值应该为0x0809。
2、XLS文件中的每条完整的数据是由一个标识、长度和数据内容来体现的,如某条数据显示090802000000,那么0908代表这条完整数据的标识,0200代表后面内容的长度,而0000为实际的内容数据。
3、在数据结构中,1个block的大小为512bytes,而XLS文件是由整数个block来组成的,因此其大小也均为512的倍数。
第二章 XLS文件格式
2.1 XLS文件框架
XLS文件作为一个文件流(FileStream),是由多个子流(SubStream)构成的,以下的表格将XLS文件的各个SubStream按照顺序依次展现出来,其中包括了对XLS的各个SubStream的大小的说明,这样可以方便于大家对XLS文件格式有个总体的认识,同时我们由下面的各个Substream的大小可以看出,XLS文件的大小最少也为13,824bytes。
SubStream
描述 XLSHeader区占1block(512bytes),固定大小。WorkBook区 最小占8个block(4096bytes)SummaryInformation区占8个block(4096bytes),固定大小。DocumentSummaryInformation区占8个block(4096bytes),固定大小。BigBlockpointer区占1个block(512bytes),固定大小。RootEntry区占1个block(512bytes),固定大小。其中WorkBook为数据变化区,它会随着文件内容的增大而增大,但始终保持Block的整数倍。