HotXLS-documentatie

AddTable methode

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