Документація HotXLS

Метод AddTable

Приєднує таблицю BIFF8 (ListObject Excel) до діапазону комірок, повертаючи новий об'єкт TXLSTable, щоб можна було налаштувати додаткові властивості (StyleName, прапори чергування рядків, TotalsRowShown) перед збереженням. Сигнатура відображається у TXLSXWorksheet.AddTable на боці XLSX, тому незалежний від формату код може викликати ту саму сигнатуру. (Доступно з версії v2.33.0.)

Синтаксис

function AddTable(const AName, ARange: WideString; AColumns: TStrings): TXLSTable;
AName WideString. Ім'я таблиці зі структурованими посиланнями, що відображається в полі імені Excel, наприклад 'SalesTable'. Стає і Name, і DisplayName поверненого об'єкта
ARange WideString. Діапазон комірок, який охоплює Table, у нотації A1, наприклад 'A1:D10'. Перший рядок діапазону вважається рядком заголовків
AColumns TStrings. Текст заголовка для кожного стовпця. Має містити рівно стільки елементів, скільки стовпців у ширину має діапазон

Примітки

Нова таблиця додається до колекції Tables аркуша. За замовчуванням її StyleName дорівнює 'TableStyleMedium2', а ShowRowStripes дорівнює True, що відповідає виводу Excel та XLSX. Ідентифікатор (1..N на аркуш) призначається під час збереження, якщо ви його не встановили

BIFF8 генерує групу записів FEATHEADR11 / FEAT11 / LIST12 лише при SaveAs(xlExcel97). Збереження BIFF5 не зачіпається (таблиці є концепцією BIFF8+). Запис LIST12 зберігає StyleName та прапори чергування рядків/стовпців, використовуючи макет клієнта стилю таблиці MS-XLS. Починаючи з v2.33.2, записи AUTOFILTERINFO / AUTOFILTER на рівні аркуша пригнічуються, якщо таблиця на тому ж аркуші повністю охоплює діапазон автофільтра, оскільки Excel вбудовує автофільтр усередині об'єкта таблиці; v2.87.4 також записує відповідні метадані AutoFilter на рівні таблиці та поля до FEAT11

Приклад

Цей приклад записує чотиристовпчасту таблицю регіонів продажів як таблицю у 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;

Дивіться також