Dołącza tabelę BIFF8 (Excel ListObject) do zakresu komórek, zwracając nowy obiekt
TXLSTable, aby można było dostroić dodatkowe właściwości (
StyleName, flagi pasków wierszy,
TotalsRowShown) przed zapisem. Kształt odzwierciedla
TXLSXWorksheet.AddTable po stronie XLSX, dzięki czemu kod niezależny od formatu może wywoływać tę samą sygnaturę. (Dostępne od v2.33.0.)
Składnia
function AddTable(
const AName, ARange: WideString;
AColumns: TStrings):
TXLSTable;
| AName |
WideString. Nazwa tabeli z odwołaniami strukturalnymi wyświetlana w Name Box programu Excel, np. 'SalesTable'. Staje się zarówno Name, jak i DisplayName zwracanego obiektu |
| ARange |
WideString. Zakres komórek, który obejmuje Table w notacji A1, np. 'A1:D10'. Pierwszy wiersz zakresu jest traktowany jako wiersz nagłówka |
| AColumns |
TStrings. Tekst nagłówka dla każdej kolumny. Musi zawierać dokładnie tyle wpisów, ile wynosi szerokość zakresu |
Uwagi
Nowa tabela jest dodawana do kolekcji
Tables arkusza. Jej
StyleName domyślnie to
'TableStyleMedium2', a
ShowRowStripes domyślnie True, co odpowiada temu co produkuje Excel i strona XLSX. Identyfikator (1..N na arkusz) jest przypisywany w czasie zapisu, jeśli go nie ustawisz
BIFF8 emituje grupę rekordów FEATHEADR11 / FEAT11 / LIST12 tylko przy SaveAs(xlExcel97). Zapis BIFF5 nie jest dotknięty (Tabele to koncepcja BIFF8+). Rekord LIST12 przechowuje StyleName i flagi pasków wierszy/kolumn używając układu klienta stylu tabeli MS-XLS. Od v2.33.2 rekordy AUTOFILTERINFO / AUTOFILTER na poziomie arkusza są pomijane gdy Tabela na tym samym arkuszu w pełni pokrywa zakres autofiltra, ponieważ Excel osadza autofiltr wewnątrz samego obiektu Tabeli; v2.87.4 zapisuje również odpowiednie metadane AutoFilter na poziomie tabeli i pola do FEAT11
Przykład
Ten przykład zapisuje czterokolumnowy region sprzedaży powiązany jako Tabela w A1:D10
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;
Zobacz też