Gerar relatório em Excel de forma simples

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:

Relatório com saída em Excel

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.

 

2 thoughts on “Gerar relatório em Excel de forma simples

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.