Skip to content

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.

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