Excel
Gera arquivo .xlsx com estilos (negrito, itálico, cores), largura de colunas calculada e sheet separada para agregados.
Uso
dart
final xlsxBytes = await engine.renderToExcel(context);
File('report.xlsx').writeAsBytesSync(xlsxBytes);Estrutura do arquivo
O renderer cria uma sheet Report com os dados organizados por seções:
┌─────────────────────────────────────┐
│ Row 1: === HEADER === │ ← texto estático
│ Row 2: title | INVOICE │
│ Row 3: company | ACME Corporation │
│ Row 4: (vazio) │
│ Row 5: === DETAIL === │
│ Row 6: product | quantity | price │ ← header bold com fundo
│ Row 7: Notebook | 1 | 2500.00 │
│ Row 8: Mouse | 2 | 89.90 │
│ ... │
│ Row N: === SUMMARY === │
│ Row N+1: TOTAL: | 2679.80 │
└─────────────────────────────────────┘Se há agregados, uma sheet Aggregates é criada.
Estilos aplicados
- Headers de seção (
=== HEADER ===): fundo escuro, texto branco, negrito - Headers de colunas: fundo claro, negrito
- Campos: estilos de fonte do JSON (bold, italic, color)
- Largura: calculada automaticamente pelo conteúdo
Extração de dados
Usa o mesmo RendererUtils do CSV — extrai Text, Field, Aggregate e RichText. Elementos visuais são ignorados.
Dependência
O renderer usa package:excel para geração do .xlsx.