EXTSST: Extended Shared String Table (FFh)

The EXTSST record contains a hash table that optimizes external copy operations.

Record Data — BIFF8

Offset

Name

Size

Contents

4

Dsst

2

Number of strings in each bucket

6

Rgisstinf

var

Array of ISSTINF structures


Each ISSTINF contains the following:

Offset

Name

Size

Contents

0

ib

4

The stream position where the strings begin (stream pointer into the SST record)

4

cb

2

Offset into the SST record that points to where the bucket begins

6

(Reserved)

2

Reserved; must be 0 (zero)


When writing a BIFF file, you cannot write out SST and LABELSST records without including the EXTSST record, because this will cause Microsoft Excel to crash when it performs an external copy.

Although you have to write out an EXTSST record, you do not have to fill out the entire record. Only the fields that have nonempty buckets have to be calculated; the rest of the bytes of the EXTSST can be garbage. If you examine a BIFF8 file, you'll notice that only a few bytes of the EXTSST contain valid data (assuming that the file is a small one with only a few strings).