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.8Delimitador
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:
- TextElement →
label: id,value: content - FieldElement →
label: binding,value: valor resolvido - AggregateElement →
label: 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.9Aggregates
Se houver agregados calculados, uma seção === AGGREGATES === é adicionada ao final.