Exportar
CSV, JSON, planilha e banco — e o formato que cada destino espera.
O fim de todo pipeline de dados é um arquivo que outra ferramenta vai ler. Cada destino tem uma expectativa, e errar a expectativa produz o erro mais irritante que existe: o arquivo abre, e está errado.
dataforge
adopt Arcane.Quadro as Q
adopt Arcane.IO as IO
adopt Arcane.OS as OS
q := Q.de_vaults([{"produto": "Cafe", "preco": 18.5}, {"produto": "=SOMA(A1)", "preco": 1}])
pasta := $"{OS.temp_dir()}/df-exp-{randint(100000, 999999)}"
IO.mkdir(pasta)
q.para_csv($"{pasta}/produtos.csv")
q.para_csv($"{pasta}/produtos-br.csv", ";") // o Excel em portugues espera ';'
texto := IO.read($"{pasta}/produtos.csv")
out texto
assert "Cafe" in texto
volta := Q.de_csv($"{pasta}/produtos.csv")
assert volta.altura() is 2
IO.remove_tree(pasta)| Destino | Use | O detalhe que quebra |
|---|---|---|
| Excel em português | para_csv(caminho, ";") | com , ele junta tudo numa coluna |
| outra API | para_json() | datas como texto ISO; void vira null |
| planilha de verdade | Arcane.Excel | tipos e várias abas; fórmula é gravada, não calculada |
| banco | Database.upsert_many | o CSV que chega de novo duplica — use upsert |