--- name: exportando-arquivos description: "Gera arquivos Excel, CSV ou JSON para download pelo usuario. Use quando o usuario pedir para exportar dados, criar planilha, gerar relatorio ou baixar informacoes. SEMPRE use esta skill em vez de Write para criar arquivos que o usuario precisa baixar." --- # Exportando Arquivos - Gerar Downloads para Usuario Skill para **criacao de arquivos** que o usuario pode baixar. > **ESCOPO:** Esta skill CRIA arquivos Excel, CSV e JSON para download. > Para LER arquivos enviados pelo usuario, use `lendo-arquivos`. > **IMPORTANTE:** SEMPRE use esta skill em vez da tool `Write` para arquivos de download! ## Script Principal ### exportar.py ```bash source .venv/bin/activate && \ echo '{"dados": [...]}' | python .claude/skills/exportando-arquivos/scripts/exportar.py [opcoes] ``` ## Formatos de Saida ``` FORMATOS SUPORTADOS │ ├── Excel (.xlsx) │ Engine: xlsxwriter │ Recursos: Formatacao, cabecalho colorido, largura auto │ ├── CSV (.csv) │ Separador: ponto-e-virgula (;) │ Encoding: UTF-8 com BOM │ └── JSON (.json) Formatacao: indentado, UTF-8 Uso: Integracao com outros sistemas ``` ## Parametros ### Parametros Principais | Parametro | Obrigatorio | Descricao | Exemplo | |-----------|-------------|-----------|---------| | `--formato` | Sim | Formato do arquivo | `--formato excel` | | `--nome` | Sim | Nome do arquivo (sem extensao) | `--nome pedidos_atacadao` | | `--titulo` | Nao | Titulo da planilha (Excel) | `--titulo "Pedidos Atacadao"` | | `--colunas` | Nao | Colunas a incluir (JSON array) | `--colunas '["Pedido","Cliente"]'` | ### Entrada de Dados Dados sao recebidos via **stdin** no formato JSON: ```json { "dados": [ {"Pedido": "VCD123", "Cliente": "ATACADAO 123", "Valor": 50000}, {"Pedido": "VCD456", "Cliente": "ATACADAO 456", "Valor": 75000} ] } ``` ## Exemplos de Uso ### Gerar Excel simples ```bash source .venv/bin/activate && \ echo '{"dados": [{"col1": "val1"}]}' | python .claude/skills/exportando-arquivos/scripts/exportar.py \ --formato excel \ --nome relatorio ``` ### Gerar Excel com titulo ```bash echo '{"dados": [...]}' | python .../exportar.py \ --formato excel \ --nome pedidos_atacadao \ --titulo "10 Maiores Pedidos" ``` ### Gerar CSV ```bash echo '{"dados": [...]}' | python .../exportar.py \ --formato csv \ --nome exportacao ``` ### Gerar JSON ```bash echo '{"dados": [...]}' | python .../exportar.py \ --formato json \ --nome dados ``` ### Selecionar colunas ```bash echo '{"dados": [...]}' | python .../exportar.py \ --formato excel \ --nome resumo \ --colunas '["Pedido", "Valor"]' ``` ## Retorno JSON ```json { "sucesso": true, "arquivo": { "nome": "abc123_pedidos.xlsx", "nome_original": "pedidos.xlsx", "url": "/agente/api/files/default/abc123_pedidos.xlsx", "tamanho": 15234, "tamanho_formatado": "14.9 KB", "registros": 10, "formato": "excel" }, "mensagem": "Arquivo EXCEL criado com 10 registros!", "instrucao_agente": "Informe ao usuario... 📥 **[Clique aqui para baixar](URL)**" } ``` ## Fluxo de Uso Completo Quando o usuario pedir "exporte os 10 maiores pedidos para Excel": 1. **Buscar dados** usando skill apropriada (ex: `gerindo-expedicao`) 2. **Formatar como JSON**: `{"dados": [...]}` 3. **Executar script**: ```bash echo '{"dados": [...]}' | python .../exportar.py --formato excel --nome pedidos ``` 4. **Ler URL** do campo `arquivo.url` no retorno 5. **Responder ao usuario** com link para download: ``` 📥 **[Clique aqui para baixar](/agente/api/files/default/abc_pedidos.xlsx)** Arquivo: pedidos.xlsx | 10 registros ``` ## Formatacao Automatica (Excel) | Tipo de Coluna | Formatacao Aplicada | |----------------|---------------------| | Valor, Preco, Custo, Total | R$ #,##0.00 | | Cabecalho | Negrito, fundo azul, texto branco | | Largura | Auto-ajuste ate 50 caracteres | ## Tratamento de Erros | Erro | Causa | Solucao | |------|-------|---------| | Nenhum dado via stdin | echo vazio | Verificar pipe do echo | | JSON invalido | Formato incorreto | Validar estrutura JSON | | Campo "dados" vazio | Lista vazia | Verificar dados de entrada | | Dependencia faltando | Biblioteca ausente | pip install pandas xlsxwriter | ## Notas - Arquivos salvos em `/tmp/agente_files/default/` - URL retornada eh acessivel via HTTP - Nome do arquivo inclui prefixo UUID para evitar colisoes - Tamanho maximo recomendado: 10MB - Arquivos removidos automaticamente apos 24h (limpeza do /tmp) ## Relacionado | Skill | Uso | |-------|-----| | lendo-arquivos | LER arquivos enviados pelo usuario | | gerindo-expedicao | Consultas de carteira para exportar | | rastreando-odoo | Consultas Odoo (NF, PO, SO, titulos) para exportar | > **NOTA**: Esta skill eh para CRIAR arquivos para download. > Para ler arquivos do usuario, use `lendo-arquivos`. > NUNCA use a tool `Write` para criar arquivos que o usuario precisa baixar!