HotXLS Belgeleri

TXLSTable / TXLSTables classes

Birim: lxHandle

BIFF8 (.xls) Tables (Excel ListObjects). Bir tablo, dikdörtgen bir aralığa; yerleşik stili ve gömülü autofilter'ı olan adlandırılmış bir yapılandırılmış başvuru bölgesi ekler. Koleksiyon TXLSWorksheet.Tables; use AddTable as the most common entry point. The shape mirrors TXLSXTable / TXLSXTables XLSX tarafında da mevcut; böylece çalışma kitabına tablo ekleyen kod biçimden bağımsız olabilir. v2.33.0'dan beri mevcut

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), sayfa bir FEATHEADR11 ($0871) tablo özelliği başlığı yayınlar, ardından her tablo bir FEAT11 ($0872) TableFeatureType payload'ı artı, çalışma sayfası EOF'sundan hemen önce ve sayfa korumasından sonra gelen bir LIST12 ($0877) stil kaydı. v2.87.4'ten beri LIST12 stil kaydı MS-XLS List12TableStyleClientInfo layout, including the banded row / column flags and the style name as an XLUnicodeString HotXLS artık tablo meta verileri için eski FEATHEADR ($0867) kaydını yayınlamıyor. Tablosuz çalışma kitapları tam olarak eskisi gibi kaydedilir ve tablo kayıt akışı ek yükü taşımaz. Tables bir BIFF8+ kavramı olduğundan BIFF5 kayıtları etkilenmez

From v2.33.2 the BIFF8 writer also suppresses the standalone sheet-level AUTOFILTERINFO / AUTOFILTER kayıtları, aynı sayfadaki bir Table autofilter aralığını tamamen kaplattığında bastırılır; çünkü Excel autofilter açılır listesini Table nesnesinin içine gömer. v2.87.4'ten itibaren tablonun kendi Feature11 meta verisi ayrıca tablo düzeyi ve alan düzeyi AutoFilter bayraklarını da ayarlar ve boş sütun başına Feat11FdaAutoFilter blocks Excel expects for table filter dropdowns

Örnek

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);

Ayrıca bkz.

TXLSWorksheet.AddTable method
TXLSWorksheet.Tables property
TXLSXTable / TXLSXTables (XLSX side)