前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【专业技术】XLS文件格式研究

【专业技术】XLS文件格式研究

作者头像
程序员互动联盟
发布2018-03-14 17:07:00
1.6K0
发布2018-03-14 17:07:00
举报
摘要:由于XLS的文件格式内容过于庞大,本文只对BIFF8和BIFF8x版本的XLS文件的基本框架和重要结构进行介绍,XLS文件属于二进制文件,在本文中统一采用十六进制来表述,通过该文可以让大家方便的用程序来生成自己的BIFF8版本的XLS文件。

关键词: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的整数倍。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档