微软Excel文件格式

                    MICROSOFT EXCEL FILE FORMAT
Microsoft Excel is a popular spreadsheet. It uses a file format called BIFF (Binary
File Format). There are many types of BIFF records. Each has a 4 byte header. The
first two bytes are an opcode that specifies the record type. The second two bytes
specify record length. Header values are stored in byte-reversed form (less significant
byte first). The rest of the record is the data itself (Figure 2-1).
 
Figure 2-1. BIFF record header.
                 | Record Header    | Record Body
Byte Number       | 0    1    2    3 | 0    1   ...
                -----------------------------------
Record Contents     | XX | XX | XX | XX | XX | XX | ...
                -----------------------------------
                | opcode   | length | data
                           
Each X represents a hexadecimal digit
Two X's form a byte. The least significant (low) byte of the opcode is byte 0 and the
most significant (high) byte is byte 1. Similarly, the low byte of the record length
field is byte 2 and the high byte is byte 3.
 
BOF (Beginning of File)
The first record in every spreadsheet is always of the BOF type (Figure 2-2). 
Figure 2-2. BOF record.
           | Record Header  |   Record Body   |
Byte        | 0   1   2   3 | 0   1   2   3 |
           -----------------------------------------
Contents    | 09 | 00 | 04 | 00 | 02 | 00 | 10 | 00 |
           -----------------------------------------
           | opcode | length | version | file   |
           |        |        | number | type |
The first two bytes, arranged with the low byte first, show that the opcode for BOF is
09h. The second two bytes indicate that the record body is 4 bytes long. The first two
bytes of the body are the version number (2 for the initial version of Excel). The last
two bytes are the file type. Type 10h is a worksheet file.
 
Relating Spreadsheet Cells to Record Data Bytes
A spreadsheet appears on a screen or printout as a matrix of rectangular cells. Each
column is identified by a letter at its top, and each row is identified by a number.
Thus cell A1 is in the first column and the first row. Cell C240 is in the third column
and the 240th row. This scheme identifies cells in a way easily understood by people.
However, it is not particularly convenient for computers, as they do not handle letters
efficiently. They are best at dealing with binary numbers. Thus, Excel stores cell
identifiers as binary numbers, that people can read as hexadecimal. The first number in
the system is 0 rather than 1.
Figure 2-3, which shows the form of an INTEGER record, illustrates the storage of column
and row information.
Figure 2-3. INTEGER record.
      | Record Header    | Record Body
Byte | 0     1    2    3 | 0    1    2    3    4    5    6    7    8 |
      ------------------------------------------------------------------
Value | 02 | 00 | 09 | 00 | 00 | 00 | 02 | 00 | 00 | 00 | 00 | 39 | 00 |
      ------------------------------------------------------------------
      | opcode | length |   row   | column |   rgbAttr    |    w    |
Opcode 2 indicates an integer record. The length bytes show that the record body is 9
bytes long. Row 0 in the body corresponds to spreadsheet row 1. Row 1 corresponds to
spreadsheet row 2, and so on. Column 2 corresponds to spreadsheet column C. Thus,
Figure 2-3 deals with cell C1. The next three bytes, labeled "rgbAttr," specify cell
attributes (Table 2-3). The final pair of bytes, (labeled "w") holds the integer's
value. Here it is 39H or 57 decimal. Thus the record specifies that cell C1 of the
spreadsheet contains an integer with the value 57.
Standard File Record Order
Excel worksheet files have each record type in a predetermined position. A file need
not have all types, but the ones that are present are always be in the same order.
Table 2-1 lists the record types for Excel document (spreadsheet) files, in the order
they would appear in a BIFF file. Table 2-2 lists the types in opcode order.
Several record types in a BIFF file, namely, ROW, BLANK, INTEGER, NUMBER, LABEL,
BOOLERR, FORMULA, and COLUMN DEFAULT, describe the contents of a cell. These records
contain a 3 byte attribute field labeled "rgbAttr". The following table describes how
the bits in the field correspond to cell attributes.
Table 2-1. Cell Attributes
Byte Offset      Bit   Description                     Contents
     0          7     Cell is not hidden              0b
                      Cell is hidden                  1b
                6     Cell is not locked              0b
                      Cell is locked                  1b
                5-0   Reserved, must be 0             000000b
                7-6   Font number (4 possible)
                5-0   Cell format code
     2          7     Cell is not shaded              0b
                      Cell is shaded                  1b
                6     Cell has no bottom border       0b
                      Cell has a bottom border        1b
                5     Cell has no top border          0b
                      Cell has a top border           1b
                4     Cell has no right border        0b
                      Cell has a right border         1b
                3     Cell has no left border         0b
                      Cell has a left border          1b
                2-0   Cell alignment code
                           general                    000b
                           left                       001b
                           center                     010b
                           right                      011b
                           fill                       100b
                           Multiplan default align.   111b
The font number field is a zero-based index into the document's table of fonts. the
cell format code is a zero-based index into the document's table of picture formats.
There are 21 different standard formats. Additional custom formats may be defined by
the user. See the FONT and FORMAT record descriptions form additonal details.
Table 2-2. Excel Record Type in Order of Appearance
Record Type                 Opcode (Hexadecimal)
BOF                            09
FILEPASS                       2F
INDEX                          0B
CALCCOUNT                      0C
CALCMODE                       0D
PRECISION                      0E
REFMODE                        0F
DELTA                          10
ITERATION                      11
1904                           22
BACKUP                         40
PRINT ROW HEADERS              2A
PRINT GRIDLINES                2B
HORIZONTAL PAGE BREAKS         1B
VERTICAL PAGE BREAKS           1A
DEFAULT ROW HEIGHT             25
FONT                           31
FONT2                          32
HEADER                         14
FOOTER                         15
LEFT MARGIN                    26
RIGHT MARGIN                   27
TOP MARGIN                     28
BOTTOM MARGIN                  29
COLWIDTH                       24
EXTERNCOUNT                    16
EXTERNSHEET                    17
EXTERNNAME                     23
FORMATCOUNT                    1F
FORMAT                         1E
NAME                           18
DIMENSIONS                     00
COLUMN DEFAULT                 20
ROW                            08
BLANK                          01
INTEGER                        02
NUMBER                         03
LABEL                          04
BOOLERR                        05
FORMULA                        06
ARRAY                          21
CONTINUE                       3C
STRING                         07
TABLE                          36
TABLE2                         37
PROTECT                        12
WINDOW PROTECT                 19
PASSWORD                       13
NOTE                           1C
WINDOW1                        3D
WINDOW2                        3E
PANE                           41
SELECTION                      1D
EOF                            0A
Table 2-3. Excel Record Types in Opcode Order
Record Type              Opcode (hexadecimal)
DIMENSIONS                  00
BLANK                       01
INTEGER                     02
NUMBER                      03
LABEL                      04
BOOLERR                     05
FORMULA                     06
STRING                      07
ROW                         08
BOF                         09
EOF                         0A
INDEX                       0B
CALCCOUNT                   0C
CALCMODE                    0D
PRECISION                   0E
REFMODE                     0F
DELTA                       10
ITERATION                   11
PROTECT                     12
PASSWORD                    13
HEADER                      14
FOOTER                     15
EXTERNCOUNT                 16
EXTERNSHEET                 17
NAME                        18
WINDOW PROTECT              19
VERTICAL PAGE BREAKS        1A
HORIZONTAL PAGE BREAKS      1B
NOTE                        1C
SELECTION                   1D
FORMAT                      1E
FORMATCOUNT                 1F
COLUMN DEFAULT              20
ARRAY                       21
1904                        22
EXTERNNAME                  23
COLWIDTH                    24
DEFAULT ROW HEIGHT          25
LEFT MARGIN                 26
RIGHT MARGIN                27
TOP MARGIN                  28
BOTTOM MARGIN               29
PRINT ROW HEADERS           2A
PRINT GRIDLINES             2B
FILEPASS                    2F
FONT                        31
FONT2                       32
TABLE                       36
TABLE2                      37
CONTINUE                    3C
WINDOW1                     3D
WINDOW2                     3E
BACKUP                      40
PANE                        41
 
Worksheet Record Types in Opcode Order
The following section lists all record types in opcode order. It gives a specification
and byte-by-byte breakdown of each type. Note that Excel terminology refers to
spreadsheets or worksheets as "documents."
DIMENSIONS                  00h                         0d
 
Record Type: DIMENSIONS
Description: Entire dimensions or range of a spreadsheet
Record Body Length: 8 bytes
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        First row
           2-3        Last row plus 1
           4-5        First column
           6-7        Last column plus 1
Note: The last row and column in the record are both one greater than the highest
numbered occupied ones.
 
BLANK                       01h                         1d
 
Record Type: BLANK
Description: Cell with no formula or value
Record Body Length: 7 bytes
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        Row
           2-3        Column
           4-6        Cell attributes (rgbAttr) (Table 2-3)
 
INTEGER                     02h                         2d
 
Record Type: INTEGER
Description: Constant unsigned integer
Record Body Length: 9 bytes
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        Row
           2-3        Column
           4-6        Cell attributes (rgbAttr) (Table 2-3)
           7-8        Unsigned integer value (w)
 
NUMBER                      03h                         3d
 
Record Type: NUMBER
Description: Constant floating point number
Record Body Length: 15 bytes
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        Row
           2-3        Column
           4-6        Cell attributes (rgbAttr) (Table 2-3)
           7-14       Floating point number value (IEEE format, see Appendix A)
 
LABEL                       04h                         4d
 
Record Type: LABEL
Description: Constant string
Record Body Length: 8 to 263 bytes
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        Row
           2-3        Column
           4-6        Cell attributes (rgbAttr) (Table 2-3)
           7          Length of string
           8-263      ASCII string, 0 to 255 bytes long
 
BOOLERR                     05h                         5d
 
Record Type: BOOLERR
Description: Boolean constant or error value
Record Body Length: 9 bytes
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        Row
           2-3        Column
           4-6        Cell attributes (rgbAttr) (Table 2-3)
           7          Boolean or error value
                                Boolean
                                      true                 1
                                      false                0
                                Error
                                      #NULL!               0
                                      #DIV/0!              7
                                      #VALUE!              0Fh
                                      #REF!                17h
                                      #NAME?               1Dh
                                      #NUM!                24h
                                      #N/A                 2Ah
           8          Specifies Boolean or error
                                Boolean                    0
                                Error                      1
 
FORMULA                     06h                         6d
 
Record Type: FORMULA
Description: Name, size, and contents of a formula cell
Record Body Length: 17-272 bytes
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        Row
           2-3        Column
           4-6        Cell attributes (rgbAttr) (see Table 2-3)
           7          Current value of formula (IEEE format, see Appendix A)
           15         Recalc flag
           16         Length of parsed expression
           17         Parsed expression
If a formula must be recalculated whenever it is loaded, the recalc flag (byte 15) must
be set. Any nonzero value is a set recalc flag. However, a flag value of 3 indicates
that the cell is a part of a matrix, and the entire matrix must be recalculated. Bytes 7
through 14 may contain a number, a Boolean value, an error code, or a string. The
following tables apply.
Case 1: Bytes 7 - 14 contain a Boolean value.
     Byte Number     Byte Description          Contents (hex)
           7         otBool                          1
           8         Reserved                        0
           9         Boolean value
           10-12     Reserved                        0
           13-14     fExprO                          FFFFh
Case 2: Bytes 7 - 14 contain an error code.
     Byte Number     Byte Description          Contents (hex)
           7         otErr                           2
           8         Reserved                        0
           9         error code
           10-12     Reserved                        0
           13-14     fExprO                          FFFFh
Case 3: Bytes 7 - 14 contain a string.
     Byte Number     Byte Description         Contents (hex)
           7         otString                        0
           8-12      Reserved                        0
           13-14     fExprO                          FFFFh
The string value itself is not stored in the field, but rather in a separate record of
the STRING type.
STRING                      07h                         7d
 
Record Type: STRING
Description: Value of a string in a formula
Record Body Length: variable
Record Body Byte Structure:
      Byte Number     Byte Description           Contents (hex)
           0          Length of the string
           1-256 (max) The string itself
The STRING record appears immediately after the FORMULA record that evaluates to the
string, unless the formula is in an array. In that case, the string record immediately
follows the ARRAY record.
ROW                         08h                         8d
 
Record Type: ROW
Description: Specifies a spreadsheet row
Record Body Length: 16 bytes
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        Row number
           2-3        First defined column in the row
           4-5        Last defined column in the row plus 1
           6-7        Row height
           8-9        RESERVED                               0
           10         Default cell attributes byte
                      Default attributes                      1
                      Not default attributes                  0
           11-12      Offset to cell records for this row
           13-15      Cell attributes (rgbAttr) (see Table 2-3)
 
BOF                         09h                         9d
 
Record Type: BOF
Description: Beginning of file
Record Body Length: 4 bytes
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        Version number
                           Excel                           2
                           Multiplan                       3
           2-3        Document type
                           worksheet                       10h
                           chart                           20h
                           macro sheet                     40h
If bit 8 of the version number byte pair is high (mask with 0100h to find out), the BIFF
file is a Multiplan document.
EOF                         0Ah                         10d
 
Record Type: EOF
Description: End of file
Record Body Length: 0 bytes
The EOF record is the last one in a BIFF file. It always takes the form 0A000000h.
INDEX                       0Bh                         11d
 
Record Type: INDEX
Description: Contains pointers to other records in the BIFF file, and defines the range
of rows used by the document. It is used to simplify searching a file for a particular
cell or name.
Record Body Length: variable
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-3        Absolute file position of first NAME record
           4-5        First row that exists
           6-7        Last row that exists plus 1
           8-on       Array of absolute file positions of the
                      blocks of ROW records.
The INDEX record is optional. If present, it must immediately follow the FILEPASS
record. IF there is no FILEPASS record, it must follow the BOF record.
CALCCOUNT                   0Ch                         12d
 
Record Type: CALCCOUNT
Description: Specifies the iteration count
Record Body Length: 2
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        Iteration Count
CALCMODE                    0Dh                         13d
 
Record Type: CALCMODE
Description: Specifies the calculation mode
Record Body Length: 2
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        Calculation mode
                        Manual                           0
                        Automatic                        1
                        Automatic, no tables            -1
PRECISION                   0Eh                         14d
 
Record Type: PRECISION
Description: Specifies precision of calculations for document
Record Body Length: 2
Record Body Byte Structure:
      Byte Number     Byte Description               Contents (hex)
           0-1        Document precision
                        precision as displayed           0
                        full precision                   1
REFMODE                     0Fh                         15d
 
Record Type: REFMODE
Description: Specifies location reference mode
Record Body Length: 2
Record Body Byte Structure:
      Byte Number     Byte Description            Contents (hex)
          0-1         Reference mode
                        R1C1 mode                      0
                        A1 mode                        1
DELTA                       10h                         16d
 
Record Type: DELTA
Description: Maximum change for an iterative model
Record Body Length: 8
Record Body Byte Structure:
      Byte Number           Byte Description      Contents (hex)
          0-7               Maximum change (IEEE format, see Appendix A)
ITERATION                   11h                         17d
 
Record Type: ITERATION
Description: Specifies whether iteration is on
Record Body Length: 2
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Iteration flag
                              Iteration off               0
                              Iteration on                1
PROTECT                     12h                         18d
 
Record Type: PROTECT
Description: Specifies whether the document is protected with a document password
Record Body Length: 2
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Document protection
                              Not protected               0
                              Protected                   1
PASSWORD                    13h                         19d
 
Record Type: PASSWORD
Description: Contains encrypted document password
Record Body Length: 2
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Encrypted password
HEADER                      14h                         20d
 
Record Type: HEADER
Description: Specifies header string that appears at the top of every page when the
document is printed
Record Body Length: variable
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
           0                Length of string (bytes)
         1-on               Header string (ASCII)
FOOTER                      15h                         21d
 
Record Type: FOOTER
Description: Specifies footer string that appears at the bottom of every page when the
document is printed
Record Body Length: variable
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0                 Length of string (bytes)
        1-on                Footer string (ASCII)
EXTERNCOUNT                 16h                         22d
 
Record Type: EXTERNCOUNT
Description: Specifies the number of documents referenced externally by an Excel
document
Record Body Length: 2
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Number of externally referenced documents
EXTERNSHEET                 17h                         23d
 
Record Type: EXTERNSHEET
Description: Specifies a document that is referenced externally by the Excel file.
There must be an EXTERNSHEET record for every external file counted by the EXTERNCOUNT record.
Record Body Length: variable
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
           0                Length of document name
          1-on              Document name
The document name may be encoded. If so, its first character will be 0, 1 or 2.
0 indicates the document name is an external reference to an empty sheet.
1 indicates the document name has been translated to a less sys-tem-dependent name.
This feature is valuable for documents intended for a non-DOS environment.
2 indicates that the externally referenced document is, in fact, the current document.
NAME                        18h                         24d
 
Record Type: NAME
Description: User-defined name on the document
Record Body Length: variable
Record Body Byte Structure:
      Byte Number           Byte Description              Contents (hex)
           0                Name attribute
                              Only bits 1 and 2 are ever nonzero.
 
                              Bit 1 is 1 if the name is a function or
                              command name on a macro sheet.
 
                              Bit 2 is 1 if the name definition
                              includes:
                              * A function that returns an array, such
                                 as TREND or MINVERSE
                              * A ROW or COLUMN function
                              * A user-defined function
 
                            Name attribute
                              Meaningful only if bit 1 of
                              byte 0 is 1 (the name is a function or
                              command name). Only bits 0 and 1 are 
                              ever nonzero.
 
                              Bit 0 is 1 if the name is a function.
 
                              Bit 1 is 1 if the name is a command.
 
           2                Keyboard shortcut. Meaningful only if the 
                            name is a command.
                              If no keyboard shortcut     0
                              If shortcut exists          ASCII value
 
           3                Length of the name text
           4                Length of the name's definition
           5-?              Text of the name
           ?-?              Name's definition (parsed) in internal
                            compressed format
           ?                Length of the name's definition (duplicate)
All NAME records should appear together in a BIFF file.
WINDOW PROTECT              19h                         25d
 
Record Type: WINDOW PROTECT
Description: Specifies whether a document's windows are protected
Record Body Length: 2 bytes
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Window protect flag
                            Not protected                 0
                            Protected                     1
VERTICAL PAGE BREAKS        1Ah                          26d
 
Record Type: VERTICAL PAGE BREAKS
Description: Lists all column page breaks
Record Body Length: variable
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Number of page breaks
          2-on              Array containing a 2-byte integer for each
                            column that immediately follows a column page
                            break. Columns must be sorted in ascending
                            order.
HORIZONTAL PAGE BREAKS      1Bh                         27d
 
Record Type: HORIZONTAL PAGE BREAKS
Description: Lists all row page breaks
Record Body Length: variable
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Number of page breaks
          2-on              Array containing a 2-byte integer for each
                            row that immediately follows a row page
                            break. Rows must be sorted in ascending
                            order.
NOTE                        1Ch                         28d
 
Record Type: NOTE
Description: Note associated with a cell
Record Body Length: Variable, maximum of 254
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Row of the note
          2-3               Column of the note
          4-5               Length of the note part of the record
          6-on               Text of the note
Notes longer than 2048 characters must be split among multiple records. All except the
last one will contain 2048 text characters. The last one will contain the overflow.
SELECTION                   1Dh                         29d
 
Record Type: SELECTION
Description: Specifies which cells are selected in a pane of a split window. It can
also specify selected cells in a window that is not split.
Record Body Length: Variable
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
           0                Number of pane
                              bottom right                0
                              top right                   1
                              bottom left                 2
                              top left                    3
                              no splits                   3
          1-2               Row number of the active cell
          3-4               Column number of the active cell
          5-6               Reference number of the active cell
          7-8               Number of references in the selection
          9-on              Array of references
Each reference in the array consists of 6 bytes arranged as follows:
      Byte Number           Byte Description
          0-1               First row in the reference
          2-3               Last row in the reference
           4                First column in the reference
           5                Last column in the reference
FORMAT                      1Eh                         30d
 
Record Type: FORMAT
Description: Describes a picture format in a document. All FORMAT records must appear
together in a BIFF file.
Record Body Length: Variable
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
           0                Length of format string
          1-on              Picture format string
FORMATCOUNT                 1Fh                         31d
 
Record Type: FORMATCOUNT
Description: The number of standard FORMAT records in the file. There are 21 different
format records.
Record Body Length: 2 bytes
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Number of built in format records.
COLUMN DEFAULT              20h                         32d
 
Record Type: COLUMN DEFAULT
Description: Specifies default cell attributes for cells in a particular column. The
default value is overriden for individual cells by a subsequent explicit definition.
Record Body Length: Variable
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Column number of first column for which a
                              default cell is being defined
          2-3               Column number of last column for which a
                              default cell is being defined, plus 1.
          4-on              Array of cell attributes
ARRAY                       21h                         33d
 
Record Type: ARRAY
Description: Describes a formula entered into a range of cells as an array. Occurs
immediately after the FORMULA record for the upper left corner of the array.
Record Body Length: variable
Record Body Byte Structure:
      Byte Number           Byte Description              Contents (hex)
          0-1               First row of the array
          2-3               Last row of the array
           4                First column of the array
           5                Last column of the array
           6                Recalculation flag
                              Array is calculated             0
                              Needs to be calculated         nonzero
           7                Length of parsed expression
          8-on              Parsed expression (array formula)
1904                        22h                         34d
 
Record Type: 1904
Description: Specifies date system used on this spreadsheet
Record Body Length: 2 bytes
Record Body Byte Structure:
      Byte Number           Byte Description              Contents (hex)
          0-1               Specifies date system used
                              1904 date system                 1
                              anything else                    0
EXTERNNAME                  23h                         35d
 
Record Type: EXTERNNAME
Description: An externally referenced name, referring to a work-sheet or macro sheet or
to a DDE topic. All EXTERNNAME records associated with a supporting document must
directly follow its EXTERNSHEET record.
Record Body Length: Variable
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
           0                Length of the name
          1-on              The name
When EXTERNNAME references a DDE topic, Excel may append its most recent values to the
EXTERNNAME record. If the record becomes too long to be contained in a single record,
it is split into multiple records, with CONTINUE records holding the excess.
COLWIDTH                    24h                         36d
 
Record Type: COLWIDTH
Description: Sets column width for a range of columns
Record Body Length: 3 bytes
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
           0                First column in the range
           1                Last column in the range
          2-3               Column width in units of 1/256th of a
                            character
DEFAULT ROW HEIGHT          25h                         37d
 
Record Type: DEFAULT ROW HEIGHT
Description: Specifies the height of all rows that are not defined explicitly
Record Body Length: 2 bytes
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Default row height in units of 1/20th of a
                            point
LEFT MARGIN                 26h                          38d
 
Record Type: LEFT MARGIN
Description: Specifies the left margin in inches when the document is printed
Record Body Length: 8 bytes
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-7               Left margin (IEEE format, see Appendix A)
RIGHT MARGIN                27h                         39d
 
Record Type: RIGHT MARGIN
Description: Specifies the right margin in inches when the document is printed
Record Body Length: 8 bytes
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-7               Right margin (IEEE format, see Appendix A)
TOP MARGIN                  28h                         40d
 
Record Type: TOP MARGIN
Description: Specifies the top margin in inches when the document is printed
Record Body Length: 8 bytes
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-7               Top margin (IEEE format, see Appendix A)
BOTTOM MARGIN               29h                         41d
 
Record Type: BOTTOM MARGIN
Description: Specifies the bottom margin in inches when the document is printed
Record Body Length: 8 bytes
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-7               Bottom margin (IEEE format, see Appendix A)
PRINT ROW HEADERS           2Ah                          42d
 
Record Type: PRINT ROW HEADERS
Description: Flag determines whether to include row and column headers on printout of
document
Record Body Length:
Record Body Byte Structure:
      Byte Number           Byte Description              Contents (hex)
          0-1               Row and Column Header Print Flag
                              Do not print headers             0
                              Print headers                    1
PRINT GRIDLINES             2Bh                         43d
 
Record Type: PRINT GRIDLINES
Description: Flag determines whether to print gridlines on print-out of document
Record Body Length: 2
Record Body Byte Structure:
      Byte Number           Byte Description              Contents (hex)
          0-1               Gridline Print Flag
                              Do not print gridlines           0
                              Print gridlines                  1
FILEPASS                    2Fh                         47d
 
Record Type: FILEPASS
Description: Specifies a file password. If this record is present, the rest of the file
is encrypted. The file password specified here is distinct from the document password
specified by the PASSWORD record. If present, the FILEPASS record must immediately
follow the BOF record.
Record Body Length: ?
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-on              ?
FONT                        31h                         49d
 
Record Type: FONT
Description: Describes an entry in the document's font table. A document may have up to
4 different fonts, numbered 0 to 3. Font records are written in the font table in the
order in which they are encountered in the file.
Record Body Length: variable
Record Body Byte Structure:
      Byte Number           Byte Description              Contents (binary)
          0-1               Height of the font (in 1/20ths of a point)
          2-3               Font Attributes
                              First byte (reserved)             00000000b
                              Second byte
                                Bit 0 - bold                        1b
                                Bit 1 - italic                      1b
                                Bit 2 - underline                   1b
                                Bit 2 - strikeout                   1b
                                Bits 4-7 (reserved)               0000b
           4                Length of font name
          5-?               Font name
FONT2                    32h                         50d
 
Record Type: FONT2
Description:  System specific information about the font defined in the previous FONT
record. The FONT2 record is option-al.
Record Body Length: Variable
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-on              ?
TABLE                    36h                         54d
 
Record Type: TABLE
Description: Describes a one-input row or column table created through the Data Table
command
Record Body Length: 12 bytes
Record Body Byte Structure:
      Byte Number           Byte Description              Contents (hex)
          0-1               First row of the table
          2-3               Last row of the table
           4                First column of the table
           5                Last column of the table
           6                Recalculation flag
                              Table is recalculated           0
                              Not recalculated              nonzero
           7                Row or column input table flag
                              Column input table              0
                              Row input table                 1
          8-9               Row of the input cell
          10-11             Column of the input cell
The area given by the first and last rows and columns does not include the outer row or
column, which contains table formulas or input values. If the input cell is a deleted
reference, the row of the input cell, given by the bytes at offset 8 and 9, is -1.
TABLE2                    37h                         55d
 
Record Type: TABLE2
Description: Describes a two-input table created by the Data Table command. It is the
same as the TABLE record, except there is no distinction between a row input table and a
column input table, there are two input cells rather than one, and either may have a
value of -1, indicating a deleted reference.
Record Body Length: 16 bytes
Record Body Byte Structure:
      Byte Number           Byte Description              Contents (hex)
          0-1               First row of the table
          2-3               Last row of the table
           4                First column of the table
           5                Last column of the table
           6                Recalculation flag
                              Table is calculated              0
                              Needs recalculation           nonzero
           7                RESERVED - must be zero            0
          8-9               Row of the row input cell
          10-11             Column of the row input cell
          12-13             Row of the column input cell
          14-15             Column of the column input cell
CONTINUE                    3Ch                         60d
 
Record Type: CONTINUE
Description: Continuation of FORMULA, ARRAY, or EXTERNNAME records that are too long to
fit in a single record.
Record Body Length: variable
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-on              Parsed expression
WINDOW1                    3Dh                          61d
 
Record Type: WINDOW1
Description: Basic window information. Locations are relative to the upper left corner
of the Microsoft Windows desktop, and are measured in units of 1/20th of a point.
Record Body Length: 9 bytes
Record Body Byte Structure:
      Byte Number           Byte Description              Contents (hex)
          0-1               Horizontal position of the window
          2-3               Vertical position of the window
          4-5               Width of the window
          6-7               Height of the window
           8               Hidden attribute
                             Window is not hidden             0
                             Window is hidden                 1
If you do not include a WINDOW1 record in your BIFF file, Excel will create a default
window in your document.
WINDOW2                    3Eh                         62d
 
Record Type: WINDOW2
Description: Advanced window information. The WINDOW2 record is optional. If present,
it must immediately follow the WINDOW1 record.
Record Body Length: 14 bytes
Record Body Byte Structure:
      Byte Number           Byte Description              Contents (hex)
           0                Display Formulas
                              Display values                   0
                              Display formulas                 1
           1                Display Grid
                              Do not display gridlines         0
                              Display gridlines                1
           2                Display Row and Column Headers
                              Do not display headers           0
                              Display headers
           3                Freeze window panes
                              Do not freeze panes              0
                              Freeze panes                     1
           4                Display zero values
                              Suppress display                 0
                              Display zero values              1
          5-6               Top row visible in the window
          7-8               Leftmost column visible in the window
           9                Row/column header and gridline color
                              Specified in next four bytes 0
                              Use window's default             1
                              foreground color.
          10-13             Row/column headers and gridline color (RGB)
BACKUP                    40h                         64d
 
Record Type: BACKUP
Description: Specifies whether a BIFF file should be backed up
Record Body Length: 2 bytes
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Backup flag
                              Do not back up              0
                              Back up                     1
PANE                        41h                         65d
 
Record Type: PANE
Description:  Describes the number and position of unfrozen panes in a window. Panes are
created by horizontal and vertical splits, which are measured in units of 1/20th of a
point.
Record Body Length: 9 bytes
Record Body Byte Structure:
      Byte Number           Byte Description         Contents (hex)
          0-1               Horizontal position of the split, zero if none
          2-3               Vertical position of the split, zero if none
          4-5               Top row visible in the bottom pane
          6-7              Leftmost column visible in the right pane
           8                Pane number of the active pane
 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值