# GRADE — planilhas

No lugar de Excel e Google Sheets. Modelo `planilha`, com fórmulas de verdade
resolvidas no navegador.

## Exemplo

```json
{
  "ferramenta": "grade",
  "titulo": "Orçamento de infraestrutura 2026",
  "doc": {
    "tema": "claro",
    "abas": [
      {
        "nome": "Custos",
        "colunas": ["Item", "Qtd", "Unitário", "Total"],
        "linhas": [
          ["Servidor de aplicação", 6, 18400, "=B1*C1"],
          ["Servidor de banco", 3, 26800, "=B2*C2"],
          ["Licenças anuais", 12, 4200, "=B3*C3"],
          ["Rede e cabeamento", 1, 38000, "=B4*C4"],
          ["Total", "", "", "=SOMA(D1:D4)"]
        ],
        "formatos": { "Qtd": "inteiro", "Unitário": "moeda", "Total": "moeda" },
        "regras": [{ "coluna": "Total", "acima": 100000 }],
        "grafico": { "tipo": "barras", "rotulo": "Item", "valor": "Total" }
      },
      {
        "nome": "Projeção",
        "colunas": ["Mês", "Receita", "Custo", "Margem", "Margem %"],
        "linhas": [
          ["Jan", 320000, 214000, "=B1-C1", "=ARRED(D1/B1*100)"],
          ["Fev", 348000, 219000, "=B2-C2", "=ARRED(D2/B2*100)"],
          ["Mar", 391000, 226000, "=B3-C3", "=ARRED(D3/B3*100)"],
          ["Média", "=MEDIA(B1:B3)", "=MEDIA(C1:C3)", "=MEDIA(D1:D3)", ""]
        ],
        "formatos": { "Receita": "moeda", "Custo": "moeda", "Margem": "moeda", "Margem %": "percentual" },
        "grafico": { "tipo": "linha", "rotulo": "Mês", "valor": "Margem" }
      }
    ]
  }
}
```

## Fórmulas

Escreva na célula, começando com `=`.

| Função | Exemplo |
|---|---|
| `SOMA` | `=SOMA(D1:D9)` |
| `MEDIA` | `=MEDIA(B1:B12)` |
| `MIN` / `MAX` | `=MAX(C1:C20)` |
| `CONT` | `=CONT(A1:A50)` |
| `ARRED` | `=ARRED(D1/B1*100)` |
| aritmética | `=B2*1.2` · `=(B3-C3)/B3` |

- Colunas são **A, B, C…** na ordem de `colunas`; linhas começam em **1** na
  primeira entrada de `linhas` (o cabeçalho **não** conta como linha).
- Argumentos de função separados por `;` — `=SOMA(A1:A3;B5)`.
- Referência circular devolve `#ERRO` em vez de travar.

## Formatação

```json
"formatos": { "Receita": "moeda", "Margem %": "percentual", "Qtd": "inteiro" }
```

`texto` · `inteiro` · `decimal` · `moeda` (R$, pt-BR) · `percentual`.

Cores condicionais:

```json
"regras": [ { "coluna": "Total", "acima": 100000 },
            { "coluna": "Margem %", "abaixo": 20 } ]
```

`acima` pinta de verde, `abaixo` de vermelho.

## Gráfico da aba

```json
"grafico": { "tipo": "barras", "rotulo": "Item", "valor": "Total" }
```

`barras` · `linha` · `area` · `pizza` · `rosca`. Linhas de fórmula (totais e médias)
ficam fora do gráfico automaticamente.

## Export

`GET /api/arquivos/<id>/export` devolve **CSV** com os valores já calculados.
