HotXLS-Dokumentation

AddTable-Methode

Verknüpft eine BIFF8-Tabelle (Excel ListObject) mit einem Zellenbereich und gibt das neue TXLSTable-Objekt zurück, damit zusätzliche Eigenschaften (StyleName, bandierte Zeilenflags, TotalsRowShown) vor dem Speichern angepasst werden können. Die Form spiegelt TXLSXWorksheet.AddTable auf der XLSX-Seite wider, sodass formatunabhängiger Code die gleiche Signatur aufrufen kann. (Verfügbar seit v2.33.0.)

Syntax

function AddTable(const AName, ARange: WideString; AColumns: TStrings): TXLSTable;
AName WideString. Der Tabellenname mit strukturiertem Verweis, der in Excel im Namensfeld angezeigt wird, z. B. 'SalesTable'. Wird im zurückgegebenen Objekt sowohl zu Name als auch zu DisplayName
ARange WideString. Der Zellbereich, den die Tabelle in A1-Notation abdeckt, z. B. 'A1:D10'. Die erste Zeile des Bereichs wird als Kopfzeile behandelt
AColumns TStrings. Kopftext pro Spalte. Muss genau so viele Einträge enthalten, wie der Bereich breit ist

Hinweise

Die neue Tabelle wird der Tables-Sammlung des Tabellenblatts hinzugefügt. Der StyleName ist standardmäßig 'TableStyleMedium2' und ShowRowStripes ist standardmäßig True, was Excel und der XLSX-Seite entspricht. Die ID (1..N pro Blatt) wird beim Speichern zugewiesen, wenn sie nicht voreingestellt wurde

BIFF8 gibt die FEATHEADR11 / FEAT11 / LIST12-Datensatzgruppe nur bei SaveAs(xlExcel97) aus. BIFF5-Speicherungen sind davon nicht betroffen (Tabellen sind ein BIFF8+-Konzept). Der LIST12-Datensatz speichert StyleName und die bandierte Zeile / bandierte Spalte-Flags im MS-XLS-Tabellenstil-Client-Layout. Ab v2.33.2 werden die Blatt-AUTOFILTERINFO/AUTOFILTER-Datensätze unterdrückt, wenn eine Tabelle auf demselben Blatt den AutoFilter-Bereich vollständig abdeckt, da Excel den AutoFilter im Tabellenobjekt selbst einbettet; v2.87.4 schreibt auch die entsprechenden AutoFilter-Metadaten auf Tabellen- und Feldebene in FEAT11

Beispiel

Dieses Beispiel schreibt eine vierspaltige Verkaufsregion, die als Tabelle bei A1:D10 gebunden ist

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;

Siehe auch