Skip to content

CSV

Exporta os dados do relatório como CSV (UTF-8 com BOM). Cada tipo de band gera uma seção no arquivo.

Uso

dart
final csvBytes = await engine.renderToCsv(context);
File('report.csv').writeAsBytesSync(csvBytes);

Estrutura do arquivo

=== HEADER ===
title,INVOICE
company,ACME Corporation

=== DETAIL ===
product,quantity,price
Notebook Dell XPS 15,1,2500.0
Mouse Logitech,2,89.9

=== SUMMARY ===
total_label,TOTAL:
total_amount,2679.8

=== AGGREGATES ===
total,2679.8

Delimitador

O delimitador padrão é vírgula (,). O CsvRenderer aceita configuração de delimitador.

Como os dados são extraídos

O renderer usa o mixin RendererUtils para extrair campos de cada band:

  • TextElementlabel: id, value: content
  • FieldElementlabel: binding, value: valor resolvido
  • AggregateElementlabel: id, value: valor calculado
  • RichTextElement → spans concatenados como texto plano

Elementos visuais (Line, Rect, Circle, Image, Chart) são ignorados no CSV.

Detail Band

Se o relatório tem uma DetailBand, os campos dos registros formam colunas:

product,quantity,price
Notebook,1,2500
Mouse,2,89.9

Aggregates

Se houver agregados calculados, uma seção === AGGREGATES === é adicionada ao final.

Sulfite do 🇧🇷 para o mundo © 2026 Rafael S. Pinheiro