TXLSTable / TXLSTables classes
Eenheid: lxHandle
BIFF8 (.xls) Tables (Excel ListObjects). A table attaches a named structured-reference region with a built-in style en an embedded autofilter to a rectangular range. The collection lives on TXLSWorksheet.Tables; use AddTable as the most common entry point. The shape mirrors TXLSXTable / TXLSXTables aan de XLSX-kant, zodat code die tabellen aan een werkmap toevoegt formaatonafhankelijk kan zijn. Beschikbaar sinds v2.33.0
Declaration
type
TXLSTable = class
constructor Create;
procedure Assign(Source: TXLSTable);
property Id: Integer; // assigned by SaveAs (1..N per sheet)
property Name: WideString;
property DisplayName: WideString;
property Range: WideString; // e.g. "A1:F9"
property Columns: TStringList; // header text per column
property StyleName: WideString; // default 'TableStyleMedium2'
property ShowFirstColumn: Boolean; // default False
property ShowLastColumn: Boolean; // default False
property ShowRowStripes: Boolean; // default True
property ShowColumnStripes: Boolean; // default False
property TotalsRowShown: Boolean; // default False
end;
TXLSTables = class
function Add: TXLSTable; overload;
function Add(const AName, ARange: WideString;
AColumns: TStrings): Integer; overload;
procedure Delete(Index: Integer);
procedure Clear;
property Count: Integer;
property Items[Index: Integer]: TXLSTable; default;
end;
Worksheet shortcut
TXLSWorksheet
exposes AddTable(AName, ARange, AColumns)
which forwards to Tables.Add and returns the new table
object so you can refine its StyleName or banded-row flags
before save
Save-time behavior
On BIFF8 SaveAs(xlExcel97), schrijft het werkblad één
FEATHEADR11 ($0871) table-feature-header, waarna elke tabel een
FEAT11 ($0872) TableFeatureType payload plus een LIST12
-stijlrecord ($0877) vlak vóór de werkblad-EOF, na de werkbladbeveiliging. Sinds
v2.87.4 gebruikt het LIST12-stijlrecord de MS-XLS
List12TableStyleClientInfo layout, including the banded
row / column flags and the style name as an XLUnicodeString
HotXLS no longer emits the legacy FEATHEADR ($0867) record for table
metadata. Workbooks without tables save exactly as before en carry no
table record-stream overhead. BIFF5 saves are unaffected because Tables
are a BIFF8+ concept
Vanaf v2.33.2 onderdrukt de BIFF8-schrijver ook de standalone
sheet-level AUTOFILTERINFO / AUTOFILTER
records wanneer een tabel op hetzelfde blad het autofilterbereik volledig
afdekt, omdat Excel een autofilter-dropdown in het tabelobject zelf
inbedt. Vanaf v2.87.4 gebruikt de eigen Feature11
metadata also sets the table-level en field-level AutoFilter flags
en emits the empty per-column Feat11FdaAutoFilter blocks
Excel expects for table filter dropdowns
Voorbeeld
var
cols: TStringList;
begin
Sheet.Cells.Item[1, 1].Value := 'Region';
Sheet.Cells.Item[1, 2].Value := 'Product';
Sheet.Cells.Item[1, 3].Value := 'Quarter';
Sheet.Cells.Item[1, 4].Value := 'Revenue';
// ... nine data rows below ...
cols := TStringList.Create;
try
cols.Add('Region');
cols.Add('Product');
cols.Add('Quarter');
cols.Add('Revenue');
with Sheet.AddTable('SalesTable', 'A1:D10', cols) do
begin
StyleName := 'TableStyleMedium2';
ShowRowStripes := True;
end;
finally
cols.Free;
end;
Workbook.SaveAs('SalesTable.xls', xlExcel97);
Zie ook
TXLSWorksheet.AddTable method
TXLSWorksheet.Tables eigenschap
TXLSXTable / TXLSXTables (XLSX side)