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).