BIFF Record Information

Although different BIFF record types contain different information, every record has the same basic format. All BIFF records consist of the following three sections:

Record Number

This 16-bit word identifies the record. The hexadecimal value of the record number is included in parentheses in the heading of the record description. For example, the EOF record's heading appears in this article as "EOF: End of File (0Ah)."

Record Data Length

This 16-bit word equals the length of the following record data, in bytes. The record length depends on the type of data in the record. For example, the EOF record is always the same length, while a FORMULA record varies in length depending on the length of the formula itself.

Record Data

This is the portion of the record containing the actual data that describes the formula, window, object, and so on.

The format for all BIFF records is described in the following table.

Offset

Length (bytes)

Contents

0

2

Record number

2

2

Record data length

4

Variable

Record data


In BIFF8, a BIFF record has a length limit of 8228 bytes, including the record type and record length fields. Therefore, the record data field must be no longer than 8224 bytes.

In BIFF7 and earlier, a BIFF record has a length limit of 2084 bytes, including the record type and record length fields. Therefore, the record data field must be no longer than 2080 bytes.

In all BIFF versions, if the record exceeds the maximum length, then one or more CONTINUE records can follow the parent record. For example, embedded bitmap graphic objects often use a parent IMDATA record and several CONTINUE records.

If a field (or a bit in a field) is marked "Reserved," then your application should treat the field or bit as a "don't-care" when you read or write the BIFF file. If a field (or bit in a field) is marked "Reserved; must be zero," then you must write zeros to the field or bit when you write a BIFF file.