TableExport

TableExport создаёт в браузере настоящую книгу OOXML .xlsx и сразу запускает её загрузку. Реализация не использует сторонние библиотеки и не маскирует CSV-файл расширением Excel.

Прямой экспорт

Передайте базовое имя файла, имя листа, заголовки и двумерный массив строк:

import { TableExport } from '@stocksharp/grids/table-export';

TableExport.download(
  'portfolio-summary',
  'Итоги портфеля',
  ['Показатель', 'Значение'],
  [
    ['Денежные средства', 125000.50],
    ['Открытые позиции', 7],
    ['Нереализованная прибыль', 4380.25],
  ],
);

Браузер загрузит файл с меткой времени в формате <baseName>-YYYYMMDD-HHMMSS.xlsx, например portfolio-summary-20260810-143025.xlsx.

Конечные числа записываются как числовые ячейки, остальные непустые значения — как встроенные строки. null, undefined и пустая строка создают пустые ячейки. Передавайте строки в требуемом порядке: TableExport не сортирует и не фильтрует данные.

Имя листа автоматически очищается от запрещённых Excel-символов []:*?/\, ограничивается 31 символом и заменяется на Sheet1, если после очистки ничего не осталось.

Экспорт из DataGrid

DataGrid подготавливает данные из деклараций столбцов и вызывает тот же механизм:

const data = grid.exportData();
console.log(data.headers, data.rows);

grid.download('orders', 'Заявки');

В файл попадают только видимые столбцы с exportable: true. По умолчанию используется результат value(row), а при наличии exportValue(row) — его результат. Это позволяет, например, показывать в ячейке форматированный DOM-элемент, сортировать по числовому коду, а экспортировать локализованный текст.

Строки экспортируются после фильтрации, сортировки и группировки в порядке представления. Заголовки групп в лист не добавляются, но строки свёрнутых групп сохраняются. renderLimit не обрезает экспорт, а закреплённые строки из pinnedRows() в книгу не включаются.

exportData() ничего не загружает и поэтому удобен для предварительного просмотра и тестирования содержимого. download() создаёт файл на клиенте, временно добавляет ссылку с Blob в документ и освобождает объектный URL после запуска загрузки.

Ограничения

Компонент формирует минимальную книгу с одним листом. Он не задаёт формулы, стили ячеек, ширину столбцов, несколько листов или сжатие ZIP. Если приложению нужны эти возможности, подготовьте экспорт отдельным специализированным инструментом.

Смотрите также