复合文档格式(一)- Excel XLS文件格式

一.概述

  1. Excel2003以之前版本的存储结构是二进制(BIFF),Excel2007及之后的存储格式是XML。
  2. Excel介绍:https://en.wikipedia.org/wiki/Microsoft_Excel
  3. Excel XLS文件格式PDF:http://www.openoffice.org/sc/excelfileformat.pdf
  4. 复合文档格式PDF:http://www.openoffice.org/sc/compdocfileformat.pdf
  5. Microsoft Windows和Apple Macintosh2发布的不同Excel版本:

《复合文档格式(一)- Excel XLS文件格式》

二.BIFF

  1. Excel2003使用的文件格式叫做BIFF (二进制文件格式),即Binary Interchange File Format的缩写,随着Excel的不断升级,其文件格式BIFF也在同步的更新与完善,因此对于不同版本的Excel有着不同的BIFF版本
  2. 写入Worknook或WorkSheet的对应文档格式和对于的Excel版本
  3. 现在的xls文件格式一般为BIFF8,BIFF8包含对较旧BIFF版本的主要更改,例如处理Unicode字符串



《复合文档格式(一)- Excel XLS文件格式》

三.直接顺序

  1. XLS文件使用Little-Endian method1存储包含多个字节的所有数据项。 这意味着最低有效字节首先被存储,而最高有效字节是最后存储的。
  2.  这适用于所有数据类型,如16位整数,32位整数,浮点值和Unicode字符。
  3. 例如:32位的整数 – 13579BDFH
  4. 被转换后的字节顺序为:DFH 9BH 57H 13H

四.Workbook

1.一个Workbook可以包含几个sheet,有多种类型的sheet,如:常规sheet、chart sheet、macro sheet(宏sheet)、Visual Basic modules(VB模块),可以将所有类型的sheet组合到Workbook中。

2.每个Workbook包含Workbook的全局设置,成为Workbook全局变量。

3.Workbook默认文件扩展名为“XLS”.

4.Workbook的一般结构:

《复合文档格式(一)- Excel XLS文件格式》

Workbook Globals SubStream : 包含Workbook全局信息的SubStream,他是BIFF5 – BIFF8 Workbooks的Workbook Stream的一部分。 Sheet SubStream : 描述一个Workbook中一个sheet的SubStream,他也是BIFF5 – BIFF8 Workbooks的Workbook Stream的一部分。

五.文件结构

5.1 流文件 – Stream File

1. 所有文档类型和BIFF版本都可以存储在一个简单的
stream file
中,BIFF5之前的文件总是以这种方式存储。

2. 
BIFF5-BIFF8
 Workboo文档,通常以
复合文档
的格式存储。如果这些以stream file的格式存储,则整个文件仅由
“Book” stream (BIFF5) 或 “Workbook” stream (BIFF8)
 组成。

5.2 复合文档 – Compound Document File (BIFF5-BIFF8)

1. 包含多个sheet的
BIFF5-BIFF8 Workboo文档通常使用复合文档(也称为“
OLE2 
storage file format ”或“
Microsoft Office compatible storage file format ”)的格式存储。 2. 复合文档包含不同类型数据的几种流,可以在复合文档文件格式的完整文档中查找:
http://sc.openoffice.org/compdocfileformat.pdf

5.3 Workbook Stream

1.
BIFF5-BIFF8 workbook 文档是以复合文档的格式存储的,复合文档的root storage包含一个stream,叫做
Workbook Stream 。BIFF8工作簿的复合文档中流的名字叫做”Workbook”,

2.如果
BIFF5-BIFF8 workbook document 是以Stream File(查看5.1 Stream File)的格式存储,则整个流叫做
Workbook Stream
.

5.4 Substreams

1. BIFF5-BIFF8 Workbook Stream可以分为几个部分 – 
workbook globals 和包含的sheet,每个部分都被称为一个SubStream,由流中的起始位置和结束位置定义。 2. Workbook Globals SubStream : 包含Workbook全局信息的SubStream,他是BIFF5 – BIFF8 Workbooks的Workbook Stream的一部分。 3.Sheet SubStream : 描述一个Workbook中一个sheet的SubStream,他也是BIFF5 – BIFF8 Workbooks的Workbook Stream的一部分。

5.5 Substreams in the BIFF5-BIFF8 Workbook Stream

1. 在
BIFF5-BIFF8 Workbook Stream 中,
Workbook Globals Substream 是这个流的头,随后的是按在文档中sheet顺序的
Sheet Substreams 。

2. 
BIFF5-BIFF8 Workbook Stream 的通用结构:

《复合文档格式(一)- Excel XLS文件格式》

六.BIFF Record 结构

1. 大多数
Excel streams 或 substreams (查看5.3或5.4)分成了Records,每一个Record包含文档中各种内容和功能的特定数据。

2. Record是由指定Record的类型和大小的头,以及Record数据组成。 3. BIFF Record的通用结构:
《复合文档格式(一)- Excel XLS文件格式》

4.Record数据的最大大小,取决于BIFF的版本,如果Record数据的大小超过当前的限制,则会添加一个或多个
CONTINUE record,在一个
CONTINUE record,之前的Record数据照常。

5.在文档中,只显示Record数据而没有Recordtou头,所有的偏移量相对应Record数据的开始而不是整个Record。 6.大部分Record的内容由于BIFF版本的不同而不同,这将在单独的表中描述,在一些较新的BIFF版本中替换了一些旧的Record,Excel不再将这些旧的Record写入到新华路BIFF版本中。

七.下一篇

复合文档(二) – 仓库与扇区链:
http://blog.csdn.net/lipinganq/article/details/76713880














    原文作者:Sam-9527
    原文地址: https://blog.csdn.net/lipinganq/article/details/76710135
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞