TableExport
TableExport cria no navegador um verdadeiro livro OOXML .xlsx e inicia imediatamente a sua transferência. A implementação não utiliza bibliotecas externas nem disfarça um ficheiro CSV com a extensão do Excel.
Exportação direta
Forneça o nome base do ficheiro, o nome da folha, os cabeçalhos e uma matriz bidimensional de linhas:
import { TableExport } from '@stocksharp/grids/table-export';
TableExport.download(
'portfolio-summary',
'Resumo da carteira',
['Indicador', 'Valor'],
[
['Disponibilidades', 125000.50],
['Posições abertas', 7],
['Lucro não realizado', 4380.25],
],
);
O navegador transfere um ficheiro com uma marca temporal no formato <baseName>-YYYYMMDD-HHMMSS.xlsx, por exemplo portfolio-summary-20260810-143025.xlsx.
Os números finitos são gravados como células numéricas e os restantes valores não vazios como cadeias incorporadas. null, undefined e uma cadeia vazia criam células vazias. Forneça as linhas na ordem pretendida: TableExport não ordena nem filtra os dados.
O nome da folha é automaticamente limpo dos caracteres proibidos pelo Excel []:*?/\, limitado a 31 caracteres e substituído por Sheet1 se nada restar depois da limpeza.
Exportação a partir de DataGrid
DataGrid prepara os dados a partir das declarações das colunas e chama o mesmo mecanismo:
const data = grid.exportData();
console.log(data.headers, data.rows);
grid.download('orders', 'Ordens');
O ficheiro inclui apenas as colunas visíveis com exportable: true. Por predefinição é utilizado o resultado de value(row) e, quando existe exportValue(row), o resultado desta função. Isso permite, por exemplo, apresentar na célula um elemento DOM formatado, ordenar por um código numérico e exportar texto localizado.
As linhas são exportadas após a filtragem, a ordenação e o agrupamento, na ordem de apresentação. Os cabeçalhos dos grupos não são adicionados à folha, mas as linhas dos grupos recolhidos são preservadas. renderLimit não limita a exportação e as linhas fixas de pinnedRows() não são incluídas no livro.
exportData() não inicia qualquer transferência, pelo que é útil para pré-visualizar e testar o conteúdo. download() cria o ficheiro no cliente, adiciona temporariamente ao documento uma ligação com um Blob e liberta o URL do objeto depois de iniciar a transferência.
Limitações
O componente cria um livro mínimo com uma folha. Não define fórmulas, estilos de células, larguras de colunas, várias folhas nem compressão ZIP. Se a aplicação necessitar destas funcionalidades, prepare a exportação com uma ferramenta especializada separada.