2.1 Document Types
2.1.3 Workbook Document
Definition: Workbook document
A workbook document contains several sheets. It is possible to combine sheets of all types into the workbook, 
for instance regular sheets, chart sheets (
7.1.2), macro sheets, or Visual Basic modules. Each workbook 
document contains global settings for the workbook, called the workbook globals. The default file extension of 
workbook documents is “XLS”.
Note the difference: A sheet is part of a worksheet document as well as a workbook document. A workbook 
document containing only one sheet is possible, but it is still called a workbook document.
!
General structure of a workbook document:
Workbook document
Sheet 3
Sheet 2
Sheet 1
Workbook globals
2.1.4 Workspace Document
Definition: Workspace document
A workspace document contains links to several worksheet and/or workbook documents. It stores the file name, 
window size, and window position of each document that is part of the workspace. The default file extension of 
workspace documents is “XLW”.
Note the difference: A workbook document contains several sheets, but a workspace document contains links to 
worksheet or workbook documents that are stored in several files.
!
No rule without exception: A workspace document written by Excel 4.0 is in fact a combination of a workbook 
document and a workspace document: It may contain links to worksheet documents, and embedded sheets that are 
loaded from an existing worksheet file or created from scratch. The workspace document contains the complete data 
of all embedded sheets.
!
General structure of a workspace document:
Workspace document
Link to worksheet/workbook document 1
Link to worksheet/workbook document 2
Link to worksheet/workbook document 3
Worksheet or 
workbook document 1
Worksheet or 
workbook document 2
Worksheet or 
workbook document 3
The detailed structure of workspace documents is described in chapter 
10.
11
Convert .pdf to .jpg online - Convert PDF to JPEG images in C#.net, ASP.NET MVC, WinForms, WPF project
How to convert PDF to JPEG using C#.NET PDF to JPEG conversion / converter library control SDK
convert pdf to jpg 300 dpi; convert pdf into jpg online
Convert .pdf to .jpg online - VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.net, ASP.NET MVC, WinForms, WPF project
Online Tutorial for PDF to JPEG (JPG) Conversion in VB.NET Image Application
convert from pdf to jpg; convert multipage pdf to jpg
2 Document Structure
2.1.5 Availability of the Document Types
The following illustration shows which document types are available in the different Excel versions:
Excel 2.x worksheet
Excel 3.0 worksheet
Excel 3.0 workspace
Excel 4.0 worksheet
Excel 4.0 combined workbook/workspace
Excel 5.0/7.0 workbook
Excel 5.0/7.0 workspace
Excel 8.0+ workbook
Excel 8.0+ workspace
12
Online Convert Jpeg to PDF file. Best free online export Jpg image
Online JPEG to PDF Converter. Download Free Trial. Convert a JPG to PDF. You can drag and drop your JPG file in the box, and then start
.pdf to jpg converter online; convert pdf to 300 dpi jpg
Online Convert PDF to Jpeg images. Best free online PDF JPEG
Online PDF to JPEG Converter. Download Free Trial. Convert a PDF File to JPG. Drag and drop your PDF in the box above and we'll convert the files for you.
changing file from pdf to jpg; convert pdf to jpg file
2.2 The Binary Interchange File Format
2.2 The Binary Interchange File Format
The Excel file format is named BIFF (B
inary I
nterchange F
ile F
ormat). It is used to store all types of documents: 
worksheet documents (
2.1.2), workbook documents (
2.1.3), and workspace documents (
2.1.4). There are different 
versions of this file format, depending on the version of Excel that has written the file (
2.1.1), and depending on the 
document type.
2.2.1 BIFF Versions for Worksheet/Workbook Documents
The following table shows which Excel version writes which file format for worksheet and workbook documents:
Excel version
BIFF version
Document type
Excel 2.x
BIFF2
Worksheet
Excel 3.0
BIFF3
Worksheet
Excel 4.0
BIFF4
Worksheet
Excel 5.0
BIFF5
Workbook
Excel 7.0
BIFF5
Workbook
Excel 8.0
BIFF8
Workbook
Excel 9.0
BIFF8
Workbook
Excel 10.0
BIFF8
Workbook
Excel 11.0
BIFF8
Workbook
BIFF8 contains major changes towards older BIFF versions, for instance the handling of Unicode strings.
2.2.2 BIFF Versions for Workspace Documents
The following table shows which Excel version writes which file format for workspace documents:
Excel version
BIFF version
Document type
Excel 2.x
Excel 3.0
BIFF3W
Workspace
Excel 4.0
BIFF4W
Combined workbook/workspace
Excel 5.0
BIFF5W
Workspace
Excel 7.0
BIFF5W
Workspace
Excel 8.0
BIFF8W
Workspace
Excel 9.0
BIFF8W
Workspace
Excel 10.0
BIFF8W
Workspace
Excel 11.0
BIFF8W
Workspace
13
C# Image Convert: How to Convert Adobe PDF to Jpeg, Png, Bmp, &
This demo code just converts first page to jpeg image. String inputFilePath = @"C:\input.pdf"; String outputFilePath = @"C:\output.jpg"; // Convert PDF to jpg.
convert pdf file into jpg; convert multiple pdf to jpg online
C# Image Convert: How to Convert Tiff Image to Jpeg, Png, Bmp, &
RasterEdge.XDoc.PDF.dll. This demo code will convert first page to jpeg image. C:\input.tif"; String outputFilePath = @"C:\output.jpg"; // Convert tiff to jpg.
convert pdf file to jpg; advanced pdf to jpg converter
2 Document Structure
2.3 File Structure
2.3.1 Stream File
All document types and BIFF versions can be stored in a simple stream file, most of them are always stored this way. 
The only exception are BIFF5-BIFF8 workbook documents, which are usually stored as compound document files (see 
below). If these documents are stored as stream files, the entire file consists of the “Book” stream (BIFF5) or 
“Workbook” stream (BIFF8) only.
2.3.2 Compound Document File (BIFF5-BIFF8)
A workbook document with several sheets (BIFF5-BIFF8) is usually stored using the compound document file format 
(also known as “OLE2 storage file format” or “Microsoft Office compatible storage file format”). It contains several 
streams for different types of data. A complete documentation of the format of compound document files can be found at 
 
http://sc.openoffice.org/compdocfileformat.pdf
.
The following table lists names of possible streams.
Stream name
Contents
Book
BIFF5 Workbook Stream (
2.3.3)
Workbook
BIFF8 Workbook Stream (
2.3.3)
<05
H
>SummaryInformation
Document settings
<05
H
>DocumentSummaryInformation
Document settings
Ctls
Formatting of form controls
User Names
User names in shared workbooks (
9)
Revision Log
Change tracking log stream (
9)
It is possible to create substorages like subdirectories in a file system, for instance for the PivotTable streams. These 
storages contain substreams itself.
Storage name
Contents
LNKxxxxxxxx
Storage for a linked OLE object (
6)
MBDxxxxxxxx
Storage for an embedded OLE object (
6)
_SX_DB_CUR
Pivot cache storage. The streams contain cached values for PivotTables (
8).
_VBA_PROJECT_CUR
Visual BASIC project storage
In BIFF8, the Escher stream describing drawing objects (
6) is not stored as separate stream in the compound 
document file, but split and embedded in several MSODRAWING records that are part of the Workbook Stream.
!
14
C# Create PDF from images Library to convert Jpeg, png images to
Batch convert PDF documents from multiple image formats, including Jpg, Png, Bmp, Gif, Tiff, Bitmap, .NET Graphics, and REImage.
convert pdf to jpg converter; .pdf to jpg
VB.NET PDF Convert to Images SDK: Convert PDF to png, gif images
Resize converted image files in VB.NET. Convert PDF to Jpg, Png, Bmp, Gif, Tiff and Bitmap in ASP.NET. Embed PDF to image converter in viewer.
convert pdf image to jpg online; change pdf file to jpg file
2.3 File Structure
2.3.3 Worksheet/Workbook/Workspace Stream
Depending on the document type, different names are used for the stream(s) they contain.
Definition: Worksheet Stream
BIFF2-BIFF4 worksheet documents (
2.1.2) are stored as stream files (
2.3.1). The entire stream is called the 
Worksheet Stream.
The Worksheet Stream is described in detail in 
4.1.1.
Definition: Workbook Stream
BIFF5-BIFF8 workbook documents (
2.1.3) that are stored in a compound document file (
2.3.2) contain a 
stream in the root storage called the Workbook Stream. The name of this stream in the compound document file is 
“Book” for BIFF5 workbooks, and “Workbook” for BIFF8 workbooks.
If a BIFF5-BIFF8 workbook document is stored as stream file (
2.3.1), the entire stream is called the Workbook 
Stream.
The Worksheet Stream is described in detail in 
4.1.2.
Definition: Workspace Stream
BIFF3W-BIFF8W workspace documents (
2.1.4) are stored as stream files (
2.3.1). The entire stream is called 
the Workspace Stream.
The Workspace Stream is described in detail in chapter 
10.
2.3.4 Substreams
The BIFF5-BIFF8 Workbook Stream (
2.3.3) is divided into several parts that describe the workbook globals and the 
contained sheets (
2.1.3). Each of this parts is called a substream, defined by a starting and end position in the stream.
Definition: Workbook Globals Substream
The substream that contains the global information of a workbook is called the Workbook Globals Substream. It 
is part of the WorkbooStream of BIFF5-BIFF8 workbooks.
Definition: Sheet Substream
A substream that describes a sheet in a workbook is called Sheet Substream. It is part of the BIFF5-BIFF8 
Workbook Stream as well as the BIFF4W Workspace Stream.
The Sheet Substream in a Workbook Stream can be regarded as a Worksheet Stream, because both describe one sheet 
and are very similar in their structure. A special type of a Sheet Substream is the Chart Substream (
7.1.2).
Substreams in the BIFF5-BIFF8 Workbook Stream
In BIFF5-BIFF8 Workbook Streams, the Workbook Globals Substream ist the leading part of the stream. It is followed 
by all Sheet Substreams in order of the sheets that are in the document.
Common structure of a BIFF5-BIFF8 Workbook Stream:
Workbook Globals Substream (required)
First Sheet Substream (required)
Second Sheet Substream (optional)
Third Sheet Substream (optional)
15
VB.NET PDF - Convert PDF with VB.NET WPF PDF Viewer
Jpeg, VB.NET compress PDF, VB.NET print PDF, VB.NET merge PDF files, VB.NET view PDF online, VB.NET Convert PDF to image formats, such as PNG, JPG, BMP and
convert pdf to jpeg on; batch pdf to jpg
VB.NET Create PDF from images Library to convert Jpeg, png images
Components to batch convert PDF documents in Visual Basic .NET class. Support create PDF from multiple image formats in VB.NET, including Jpg, Png, Bmp, Gif
batch pdf to jpg converter online; change file from pdf to jpg
2 Document Structure
Substreams in the BIFF4 Workspace Stream
In BIFF4 Workspace Streams, the Sheet Substreams are embedded in the Workspace Stream. They are similar in their 
structure to BIFF4 Worksheet Streams.
Common structure of a BIFF4W Workspace Stream:
Workspace Stream (required)
First embedded BIFF4 Sheet Substream (optional)
Second embedded BIFF4 Sheet Substream (optional)
Third embedded BIFF4 Sheet Substream (optional)
2.4 BIFF Record Structure
Definition: BIFF Record
Most of the Excel streams or substreams (including all streams described in 
2.3.3 and substreams described in 
2.3.4) are divided into records. Each record contains specific data for the various contents or features in a 
document. It consists of a header specifying the record type and size, followed by the record data.
Common structure of a BIFF record:
Offset
Size
Contents
0
2
Identifier
2
2
Size of the following data (sz
)
}
Record header
4
sz
Record data
The maximum size of the record data is limited and depends on the BIFF version. If the size of the record data exceeds 
the current limit, one or more CONTINUE records (
5.21) will be added. Inside a CONTINUE record the data of the 
previous record continues as usual.
In this documentation only the record data without the headers is shown. All offsets are relative to the beginning of the 
record data and not to the entire record. The contents of most of the records differ from BIFF version to version. This 
will be described in separate tables. A few older records are replaced in newer BIFF versions. Excel does not write these 
old records in new BIFF versions anymore.
16
2.5 Common Record Substructures
2.5 Common Record Substructures
This chapter contains information about basic substructures which do not belong to specific records, for instance strings, 
error codes, constant values, URLs, or line and area formatting.
2.5.1 Formatting Runs
Formatting runs describe the character formatting of strings. A formatting run contains the index of a character and the 
index of a font in the font buffer. The font is used to format the indexed character and the following characters, until the 
string ends or another formatting run follows.
Formatting run, BIFF2-BIFF5:
Offset
Size
Contents
0
1
First formatted character (zero-based)
1
1
Index to FONT record (
5.45)
Formatting run, BIFF8:
Offset
Size
Contents
0
2
First formatted character (zero-based)
2
2
Index to FONT record (
5.45)
2.5.2 Byte Strings (BIFF2-BIFF5)
All Excel file formats up to BIFF5 contain simple byte strings. The byte string consists of the length of the string 
followed by the character array. The length is stored either as 8-bit value or as 16-bit value, depending on the current 
record. The string is not zero-terminated. The encoding of the character array is dependent on the current record (for 
example taken from the CODEPAGE record, 
5.17, or from the FONT record, 
5.45).
Offset
Size
Contents
0
1 or 2
Length of the string (character count, ln
)
1 or 2
ln
Character array (8-bit characters)
2.5.3 Unicode Strings (BIFF8)
From BIFF8 on, strings are always stored using UTF-16LE
3
text encoding. The character array is a sequence of 16-bit 
values
4
. Additionally it is possible to use a compressed format, which omits the high bytes of all characters, if they are 
all zero.
The following table describes the standard format of the entire string, but in many records the strings differ from this 
format. This will be mentioned separately. It is possible (but not required) to store Rich-Text formatting information and 
Asian phonetic information inside a Unicode string. This results in four different ways to store a string. The character 
array is not zero-terminated.
3
For more information see http://en.wikipedia.org/wiki/UTF-16
.
4
In most cases each value corresponds to a Unicode character. Only the Unicode characters above U+FFFF are encoded with a 
“surrogate pair”, that are two 16-bit code values in UTF-16 (see footnote 3).
17
2 Document Structure
Contents of a Unicode String
The string consists of the character count (as usual an 8-bit value or a 16-bit value), option flags, the character array and 
optional formatting information. In general, the option flags field occurs also for empty strings. But in a few records, this 
field is omitted, if the string is empty. This is mentioned at the respective place.
Offset
Size
Contents
0
1 or 2
Length of the string (character count, ln
)
1 or 2
1
Option flags:
Bit
Mask
Contents
0
01
H
Character compression (ccompr
):
0
2
= Compressed (8-bit characters)
1
2
= Uncompressed (16-bit characters)
2
04
H
Asian phonetic settings (phonetic
):
0
2
= Does not contain Asian phonetic settings
1
2
= Contains Asian phonetic settings
3
08
H
Rich-Text settings (richtext
):
0
2
= Does not contain Rich-Text settings
1
2
= Contains Rich-Text settings
[2 or 3]
2
(optional, only if richtext
=1) Number of Rich-Text formatting runs (rt
)
[var.]
4
(optional, only if phonetic
=1) Size of Asian phonetic settings block (in bytes, sz
)
var.
ln
or 2∙ln
Character array (8-bit characters or 16-bit characters, dependent on ccompr
)
[var.]
4∙rt
(optional, only if richtext
=1) List of rt
formatting runs (
2.5.1)
[var.]
sz
(optional, only if phonetic
=1) Asian Phonetic Settings Block (see below)
18
2.5 Common Record Substructures
Asian Phonetic Settings Block
Asian phonetic text
5
(Ruby) can be used to provide extended phonetic information for specific characters or words. It 
appears above the regular text (or to the right of vertical text), and can refer to single characters, groups of characters, or 
entire words.
Offset
Size
Contents
0
2
Unknown identifier 0001
H
2
2
Size of the following data (10 + 2∙ln
+ 6∙np
)
4
2
Index to FONT record (
5.45) used for the Asian phonetic text
6
2
Additional settings for the Asian phonetic text:
Bit
Mask
Contents
1-0
0003
H
Type of Japanese phonetic text (type
):
00
2
= Katakana (narrow)
10
2
= Hiragana
01
2
= Katakana (wide)
3-2
000C
H
Alignment of all portions of the Asian phonetic text (align
):
00
2
= Not specified (Japanese only)
10
2
= Centered
01
2
= Left (Top for vertical text)
11
2
= Distributed
5-4
0030
H
11
2
(always set)
8
2
Number of portions the Asian phonetic text is broken into (np
).
If np
= 0, the Asian phonetic text refers to the entire cell text.
10
2
Total length of the following Asian phonetic text (number of characters, ln
)
12
2
Repeated total length of the text
14
2∙ln
or 2
Character array of Asian phonetic text, no Unicode string header, always 16-bit characters.
Note: If ln
= 0, this field is not empty but contains 0000
H
.
14+2∙ln
6∙np
List of np
structures that describe the position of each portion in the main text. Each 
structure contains the following fields:
Offset
Size
Contents
0
2
First character in the Asian phonetic text of this portion (cpa
)
2
2
First character of the main text belonging to this portion (cpm
)
4
2
Number of characters in main text belonging to this portion (ccm
)
Example: Japanese word Tokyo (東京) with added hiragana (とうきょう)
6
. The following examples show the 
contents of the important fields of the Asian Phonetic Settings Block.
Example 1: Hiragana centered over the entire word:
とうきょう
東京
type
= 10
2
(hiragana)
align
= 10
2
(centered)
np
= 0 (no portions, hiragana refers to entire text)
ln
= 5 (length of entire hiragana text)
No portion structures
5
For more information see http://en.wikipedia.org/wiki/Ruby_characters
.
6
Example taken from http://en.wikipedia.org/wiki/Ruby_characters
.
19
2 Document Structure
Example 2: Hiragana left-aligned per character:
とう
きょう
東京
type
= 10
2
(hiragana)
align
= 01
2
(left-aligned)
np
= 2 (hiragana split into 2 portions)
ln
= 5 (length of entire hiragana text)
Portion #1: cpa
= 0 (start with 1
st
hiragana character); cpm
= 0; ccm
= 1 (attach to 1
st
character in main text)
Portion #2: cpa
= 2 (start with 3
rd
hiragana character); cpm
= 1; ccm
= 1 (attach to 2
nd
character in main text)
2.5.4 RGB Colours
Colour values are represented in RGB mode (red/green/blue).
Offset
Size
Contents
0
1
Red component
1
1
Green component
2
1
Blue component
3
1
Not used
In this documentation, constant colour values are written as 6-digit hexadecimal values  in RGB notation: RRGGBB
H
.
Example: The colour value FF8000
H
describes the colour orange: red is FF
H
, green is 80
H
, and blue is 00
H
.
2.5.5 RK Values
An RK value is an encoded integer or floating-point value. RK values have a size of 4 bytes and are used to decrease file 
size for floating-point values.
Structure of an RK value (32-bit value), BIFF3-BIFF8:
Bit
Mask
Contents
0
00000001
H
0 = Value not changed
1 = Encoded value is multiplied by 100
1
00000002
H
0 = Floating-point value
1 = Signed integer value
31-2
FFFFFFFC
H
Encoded value
If bit 1 is cleared, the encoded value represents the 30 most significant bits of an IEEE 754 floating-point value (64-bit 
double precision). The 34 least significant bits must be set to zero. If bit 1 is set, the encoded value represents a signed 
30-bit integer value. To get the correct integer, the encoded value has to be shifted right arithmetically by 2 bits. If bit 0 
is set, the decoded value (both integer and floating-point) must be divided by 100 to get the final result.
Examples:
RK value
Type
Div 100 0 Encoded value e Decoded value
Result
3FF00000
H
float
no
3FF00000
H
3FF0000000000000
H
= 1.0
1.0
3FF00001
H
float
yes
3FF00000
H
3FF0000000000000
H
= 1.0
0.01
004B5646
H
integer
no
004B5644
H
0012D591
H
= 1234321
1234321
004B5647
H
integer
yes
004B5644
H
0012D591
H
= 1234321
12343.21
20
Documents you may be interested
Documents you may be interested