• MICROSOFT EXCEL FILE FORMAT(BIFF2.1)


    转自:http://www.xgdown.com/article/243/61822_1.htm
    作用:http://unruledboy.cnblogs.com/archive/2004/07/07/22093.html   二进制生成excel

    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 XML:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />CSC="0" NumberType="1" Negative="False" HasSpace="True" SourceValue="0" UnitName="in">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                      CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="2" UnitName="F">2F

    INDEX                         0B

    CALCCOUNT                     CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="0" UnitName="C">0C

    CALCMODE                      0D

    PRECISION                     0E

    REFMODE                       CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="0" UnitName="F">0F

    DELTA                         10

    ITERATION                     11

    1904                          22

    BACKUP                        40

    PRINT ROW HEADERS             CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="2" UnitName="a">2A

    PRINT GRIDLINES               2B

    HORIZONTAL PAGE BREAKS        1B

    VERTICAL PAGE BREAKS          CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1" UnitName="a">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                   CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1" UnitName="F">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                      CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="C">3C

    STRING                        07

    TABLE                         36

    TABLE2                        37

    PROTECT                       12

    WINDOW PROTECT                19

    PASSWord                      13

    NOTE                          CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1" UnitName="C">1C

    WINDOW1                       3D

    WINDOW2                       3E

    PANE                          41

    SELECTION                     1D

    EOF                           CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="0" UnitName="a">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                        CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="0" UnitName="a">0A

    INDEX                      0B

    CALCCOUNT                  CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="0" UnitName="C">0C

    CALCMODE                   0D

    PRECISION                  0E

    REFMODE                    CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="0" UnitName="F">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       CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1" UnitName="a">1A

    HORIZONTAL PAGE BREAKS     1B

    NOTE                       CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1" UnitName="C">1C

    SELECTION                  1D

    FORMAT                     1E

    FORMATCOUNT                CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1" UnitName="F">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          CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="2" UnitName="a">2A

    PRINT GRIDLINES            2B

    FILEPASS                   CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="2" UnitName="F">2F

    FONT                       31

    FONT2                      32

    TABLE                      36

    TABLE2                     37

    CONTINUE                   CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="3" UnitName="C">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 CSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="0" UnitName="a">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

                            RCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1" UnitName="C">1C1 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

  • 相关阅读:
    【typecho】解决使用分隔符 <!--more-->标签后首页文字下面出现一段空白
    真没想到,疫情让我实现了远程办公的夙愿
    程序员周末应该干的8件事
    在Delphi中如何控制其它应用程序窗口
    Delphi 如何操作外部程序的控件(如按钮,文本框,单选按钮等)
    delphi 向其他程序发送模拟按键
    Delphi中如何控制其他程序窗体上的窗口控件
    用Delphi“遥控”按钮
    双系统启动菜单的修改方法
    PureBasic 读取文件中一行的两个数据例子
  • 原文地址:https://www.cnblogs.com/shiningrise/p/793836.html
Copyright © 2020-2023  润新知