Прикрепляет таблицу BIFF8 (Excel ListObject) к диапазону ячеек, возвращая новый объект
TXLSTable, чтобы дополнительные свойства (
StyleName, флаги чередования строк,
TotalsRowShown) можно было настроить перед сохранением. Форма совпадает с
TXLSXWorksheet.AddTable на стороне XLSX, что позволяет коду, не зависящему от формата, вызывать одну и ту же сигнатуру. (Доступно с версии v2.33.0.)
Синтаксис
function AddTable(
const AName, ARange: WideString;
AColumns: TStrings):
TXLSTable;
| AName |
WideString. Имя таблицы со структурированными ссылками, отображаемое в Name Box 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 также записывает соответствующие метаданные автофильтра уровня таблицы и полей в 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;
См. также