Koppelt een BIFF8-tabel (Excel ListObject) aan een celbereik en geeft het nieuwe
TXLSTable-object terug, zodat aanvullende eigenschappen (
StyleName, banded-row-vlaggen,
TotalsRowShown) vóór het opslaan ingesteld kunnen worden. De vorm spiegelt
TXLSXWorksheet.AddTable aan de XLSX-kant zodat formaatonafhankelijke code dezelfde handtekening kan aanroepen. (Beschikbaar sinds v2.33.0.)
Syntaxis
functie AddTable(
const AName, ARange: WideString;
AColumns: TStrings):
TXLSTable;
| AName |
WideString. De gestructureerde-verwijzingstabelnaam zoals getoond in de Naam-box van Excel, bijv. 'SalesTable'. Wordt op het teruggegeven object zowel Name als DisplayName |
| ARange |
WideString. Het celbereik dat de tabel in A1-notatie bestrijkt, bijv. 'A1:D10'. De eerste rij van het bereik geldt als koprij |
| AColumns |
TStrings. Kopregel per kolom. Moet precies evenveel items bevatten als het bereik breed is |
Opmerkingen
De nieuwe tabel wordt toegevoegd aan de
Tables-verzameling van het werkblad.
StyleName staat standaard op
'TableStyleMedium2' en
ShowRowStripes op True, precies zoals Excel en de XLSX-kant die aanmaken. De id (1..N per blad) wordt bij het opslaan toegekend als je hem niet zelf instelt
BIFF8 emitteert de recordgroep FEATHEADR11 / FEAT11 / LIST12 alleen bij SaveAs(xlExcel97). BIFF5-opslag blijft onaangetast (tabellen zijn een BIFF8+-concept). Het LIST12-record bewaart StyleName en de banded-row-/banded-column-vlaggen volgens de MS-XLS table-style client layout. Vanaf v2.33.2 worden de records AUTOFILTERINFO / AUTOFILTER op bladniveau onderdrukt wanneer een tabel op hetzelfde blad het autofilterbereik volledig bestrijkt, omdat Excel het autofilter in het tabelobject zelf inbedt; v2.87.4 schrijft ook de bijbehorende AutoFilter-metadata op tabel- en veldniveau naar FEAT11
Voorbeeld
Dit voorbeeld schrijft een vierkolommige verkoopregio die als tabel aan A1:D10 is gebonden
var
cols: TStringList;
begin
cols := TStringList.Create;
try
cols.Add('Region');
cols.Add('Product');
cols.Add('Quarter');
cols.Add('Revenue');
Sheet.AddTable('SalesTable', 'A1:D10', cols);
finally
cols.Free;
end;
Zie ook