Gerar relatórios em Excel tem como principal objetivo tornar a analise do dados mais simples e eficiente, sem contar nas inúmeras possibilidades de manipulação dos dados existentes na ferramenta como filtragem até geração de gráficos.
Veja abaixo uma maneira simples porem muito eficiente de gerar este tipo de relatório:
/* Para gerar Excel */ DEFINE VARIABLE chExcelApp AS COM-HANDLE NO-UNDO. DEFINE VARIABLE chWorkBook AS COM-HANDLE NO-UNDO. DEFINE VARIABLE chWorkSheet AS COM-HANDLE NO-UNDO. DEFINE VARIABLE vLinha AS INTEGER NO-UNDO. CREATE "Excel.Application" chExcelApp. chExcelApp:VISIBLE = false. chWorkBook = chExcelApp:Workbooks:Add(""). chWorkSheet = chExcelApp:Sheets:Item(1). chWorksheet:Range("A1"):VALUE = "Relatório de Clientes - " + String(month(today), "99") + "/" + String(Year(today), "9999"). chWorksheet:Range("A1"):Interior:colorindex = 17. /* Cor de fundo da celula */ chWorkSheet:Range("A1:D1"):Merge. /* Mesclando celulas */ chWorksheet:Range("A1"):Font:size = 20. /* Tamanho da fonte */ chWorksheet:Range("A1"):Font:Underline = 2. /* Texto Sublinhado */ chWorksheet:Range("A1"):Font:Bold = True. /* Negrito */ /* Titulo das colunas */ chWorksheet:Range("A2"):VALUE = "Cod. cliente". chWorksheet:Range("B2"):VALUE = "Nome cliente". chWorksheet:Range("C2"):VALUE = "Cidade". chWorksheet:Range("D2"):VALUE = "UF". chWorksheet:Range("A2:X2"):Font:Bold = True. chWorksheet:Range("A2:X2"):Font:size = 14. assign vLinha = 2. for each cliente no-lock: assign vLinha = vLinha + 1. chWorksheet:Range("A" + String(vLinha)):VALUE = cliente.cod-cliente. chWorksheet:Range("B" + String(vLinha)):VALUE = cliente.nome-emit. chWorksheet:Range("C" + String(vLinha)):VALUE = cliente.cidade. chWorksheet:Range("D" + String(vLinha)):VALUE = cliente.estado. end. chExcelApp:VISIBLE = true. /* Release Com-handle */ RELEASE OBJECT chWorksheet. RELEASE OBJECT chWorkbook. RELEASE OBJECT chExcelApp.
Veja o resultado obtido abaixo:
Vamos explicar algumas partes do código:
chExcelApp – Objeto que suportará o aplicativo do Excel em si.
chWorkBook – Corresponde ao documento.
chWorkSheet – Corresponde as planilhas dentro do documento.
No código abaixo estamos tonando a aplicação invisível enquanto é processada, caso for passado valor true poderá ser visto o documento sendo montado, se o visible não for informado ou for declarado igual a false, no fim do processo o Excel ficará na memória más não será apresentado ao usuário.
chExcelApp:VISIBLE = false.
Na linha 10 se informado valor em branco (“”) será gerado um novo documento, se deseja carregar um documento já existente basta informar o caminho aqui.
Ex:
/* Novo documento */ chWorkBook = chExcelApp:Workbooks:Add(""). /* Carregar documento já existente */ chWorkBook = chExcelApp:Workbooks:Add("C:\Arquivo.xls").
Removendo os objetos da memória:
RELEASE OBJECT chWorksheet. RELEASE OBJECT chWorkbook. RELEASE OBJECT chExcelApp.
Boa gostaria de usar mas como puxar o download para rodar este arquivo, como seria o link?