2.5.266 TableFeatureType

The TableFeatureType structure specifies the definition of a table within a sheet.

The table feature supports multiple data source types. The data source is specified by the lt field. If the lt field is 0x00000001, the table's data source definition is cached within the List Data stream. If the lt field is 0x00000002, the table's data source schema is cached within the XML stream (section 2.1.7.22).


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

lt

idList

crwHeader

crwTotals

idFieldNext

cbFSData

rupBuild

unused1

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

verXL

Q

R

S

T

U

reserved3

lPosStmCache

cbStmCache

cchStmCache

lem

rgbHashParam (16 bytes)

...

...

rgbName (variable)

...

cFieldData

cSPName (variable)

...

entryId (variable)

...

fieldData (variable)

...

idDeleted (variable)

...

idChanged (variable)

...

cellInvalid (variable)

...

lt (4 bytes): A SourceType that specifies the type of data source for the table.

idList (4 bytes): An unsigned integer that specifies an identifier for the table. MUST be unique within the sheet. SHOULD<183> be unique within the workbook.

crwHeader (4 bytes):  A Boolean (section 2.5.14)  that specifies whether the table has a header row. If fAutoFilter is 1, the value MUST be 0x00000001. If fSingleCell is 1, the value MUST be 0x00000000. MUST be one of the following values:

Value

Meaning

0x00000000

Table has no header row.

0x00000001

Table has a header row.

crwTotals (4 bytes):  A Boolean that specifies whether there is a total row.  If fSingleCell is 1, the value MUST be 0x00000000.  MUST be one of the following values:

Value

Meaning

0x00000000

Table has no total row.

0x00000001

Table has a total row.

idFieldNext (4 bytes): An unsigned integer that specifies the next unique identifier to use when assigning unique identifiers to the fieldData.idField field of the table.

cbFSData (4 bytes): An unsigned integer that specifies the size, in bytes, of the fixed portion of this structure. The fixed portion starts at the lt field and ends at the rgbHashParam field. MUST be equal to 64.

rupBuild (2 bytes): An unsigned integer that specifies the build number of the application that wrote the structure.

unused1 (2 bytes): Undefined, and MUST be ignored.

A - unused2 (1 bit): Undefined, and MUST be ignored.

B - fAutoFilter (1 bit): A bit that specifies whether the table has an AutoFilter.  MUST be 1 when fPersistAutoFilter is 1.

C - fPersistAutoFilter (1 bit): A bit that specifies whether the AutoFilter is preserved for this table after data refresh operations.<184>

D - fShowInsertRow (1 bit): A bit that specifies whether the insert row is visible. MUST be 1 if fInsertRowInsCells is 1.

E - fInsertRowInsCells (1 bit): A bit that specifies whether rows below the table are shifted down because of the insert row being visible.

F - fLoadPldwIdDeleted (1 bit): A bit that specifies whether the idDeleted field is present. MUST be zero if the lt field is not set to 0x00000001.

G - fShownTotalRow (1 bit): A bit that specifies whether the total row was ever visible.

H - reserved1 (1 bit):  MUST be zero and MUST be ignored.

I - fNeedsCommit (1 bit): A bit that specifies whether table modifications were not synchronized with the data source. MUST be zero if the lt field is not set to 0x00000001.

J - fSingleCell (1 bit): A bit that specifies whether the table is limited to a single cell. The table cannot have header rows, total rows, or multiple columns. If fSingleCell equals 1, the lt field MUST be set to 0x00000002.

K - reserved2 (1 bit):  MUST be zero and MUST be ignored.

L - fApplyAutoFilter (1 bit):  A bit that specifies whether the AutoFilter is currently applied. MUST be 1 if the AutoFilter is currently applied<185>.

M - fForceInsertToBeVis (1 bit): A bit that specifies whether the insert row is forced to be visible because the table has no data.

N - fCompressedXml (1 bit): A bit that specifies whether the cached data for this table in the List Data stream is compressed. MUST be zero if the lt field is not set to 0x00000001.

O - fLoadCSPName (1 bit): A bit that specifies whether the cSPName field is present. MUST be zero if the lt field is not set to 0x00000001.

P - fLoadPldwIdChanged (1 bit): A bit that specifies whether idChanged field is present. MUST be zero if the lt field is not set to 0x00000001.

verXL (4 bits): An unsigned integer that specifies the application version under which the table was created. MUST be either 0xB or 0xC<186>.

Q - fLoadEntryId (1 bit): A bit that specifies whether the entryId field is present.

R - fLoadPllstclInvalid (1 bit): A bit that specifies whether the cellInvalid field is present.  MUST be zero if the lt field is not set to 0x00000001.

S - fGoodRupBld (1 bit): A bit that specifies whether the rupBuild field is valid.

T - unused3 (1 bit): Undefined, and MUST be ignored.

U - fPublished (1 bit): A bit that specifies whether the table is published. This bit is ignored if the fPublishedBookItems field of the BookExt_Conditional12 structure is zero.

reserved3 (7 bits): Undefined, and MUST be ignored.

lPosStmCache (4 bytes): An unsigned integer that specifies the position of the cached data within the List Data stream.  Undefined and MUST be ignored if the lt field is not set to 0x00000001.

cbStmCache (4 bytes): An unsigned integer that specifies the size, in bytes, of the cached data within the List Data stream.  Undefined and MUST be ignored if the lt field is not set to 0x00000001.

cchStmCache (4 bytes): An unsigned integer that specifies the count of characters of the cached data within the List Data stream when the cached data is uncompressed.  Undefined and MUST be ignored if the lt field is not set to 0x00000001.

lem (4 bytes): A LEMMode enumeration that specifies the table edit mode. If lt is set to 0x00000000, 0x00000002 or 0x00000003, this field MUST be set to 0x00000000.

rgbHashParam (16 bytes): An array of bytes that specifies round-trip information. SHOULD<187> be ignored and MUST be preserved if the lt field is set to 0x00000001. Undefined and MUST be ignored if the lt field is not set to 0x00000001.

rgbName (variable): An XLUnicodeString that specifies the name of the table. MUST be unique per workbook, and case-sensitive in all locales.

cFieldData (2 bytes): An unsigned integer that specifies the number of columns in the table. MUST be greater than or equal to 0x0001 and less than or equal to 0x0100.

cSPName (variable): An XLUnicodeString that specifies the name of the cryptographic service provider used to specify rgbHashParam. This field is present only if fLoadCSPName is set to 1.

entryId (variable): An XLUnicodeString that specifies a unique identifier for the table. The string equals the value of the idList field, represented in decimal format, without any leading zeros. It is used when lt equals 0x00000002 and ignored otherwise. This field is present only if fLoadEntryId is set to 1.

fieldData (variable): An array of Feat11FieldDataItem that contains the specification of the columns of the table. The number of items in this array is specified by the cFieldData field.

idDeleted (variable): A Feat11RgSharepointIdDel structure that specifies the identifiers of deleted rows. This information is used when synchronizing with the Web based data provider’s data source. This field is only present if the fLoadPldwIdDeleted field is set to 1.

idChanged (variable): A Feat11RgSharepointIdChange structure that specifies the identifiers of the edited rows. This information is used when synchronizing with the Web based data provider’s data source. This field is only present if the fLoadPldwIdChanged field is set to 1.

cellInvalid (variable): A Feat11RgInvalidCells structure that specifies the location of cells within the table that contain values that are invalid based on validation rules on the Web based data provider. This field is only present if the fLoadPllstclInvalid field is set to 1.