Mesclar celulas Excel no Progress

Discussão em 'Progress 4GL' iniciado por sidnei.alves, Agosto 9, 2012.

  1. sidnei.alves

    sidnei.alves Sem Pontuação

    Caros colegas,

    Qual o comando para progress onde eu mesclo varias celular pra se toranrem apenas uma?
    Alguém tem por ai alguma apostila com comando progress para excel?

    Obrigado.

    Sidnei
  2. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    chExcelApplication:Range("A1:O1"):MergeCells = 1
  3. tartarotti

    tartarotti Sem Pontuação

    Sidnei, se for no AppBuilder > PRO*Tools > Progress COM Object Viewer > Open > Diretório onde se localiza o office instalado Ex: C:\Program Files\Microsoft Office\Office12. Voce ira ver varios arquivos .TLB e .OLB, o arquivo do Excel (na minha maquina) é XL5EN32.OLB e XL5PTB32.OLB. Abra alguns desses arquivos, voce ira notar que de um lado ficar os COM Objects, do outro os Eventos, Metodos, etc e quando voce selecionar um Metodo, ira carregar no Progress Syntax um exemplo de como utilizar.

    Segue abaixo alguns exemplos do Excel no Progress.

    Relatório em Excel com Progress - Usando varios Recursos simples
    Abaixo demonstro um exemplo de relatório em progress que gera arquivo em excel todo comentado, vejam que utilizo varios recursos interessantes como titulo, numero de pagina e outras dicas de formatação.....


    /* Cria as variaveis necessárias para o relatório */
    DEF VAR chExcelApplication AS COM-HANDLE NO-UNDO.
    DEF VAR chWorkbook AS COM-HANDLE NO-UNDO.
    DEF var chworksheet AS com-handle.
    DEF VAR m-linha AS INTEGER NO-UNDO. /* Variável p/ contagem das linhas */

    ASSIGN m-linha = 1.

    CREATE "Excel.Application" chExcelApplication. /* Cria a Planilha */
    ASSIGN chWorkbook = chExcelApplication:Workbooks:ADD("")
    chworksheet=chexcelapplicAtion:sheets:item(1)
    chworksheet:name="Pasta do Relatório". /* Nome que será criada a Pasta da Planilha */
    m-linha = 2.

    ASSIGN chWorkSheet:pageSetup:Orientation = 1. /* Define papel como formato Retrato */

    ASSIGN chworksheet:range("A1:C1"):FONT:colorindex = 02 /* Aplica fonte cor Branca no Titulo */
    chworksheet:range("A1:C1"):MergeCells = TRUE. /* Cria a Planilha */
    chworksheet:range("A1:C1"):VALUE = "Titulo - Titulo do Relatório".
    chWorkSheet:Range("A1:C1"):HorizontalAlignment = 3. /* Centraliza o Titulo */
    chWorkSheet:Range("A1:C1"):Interior:colorindex = 01. /* Aplica fundo preto no titulo */
    /* Cria os titulos para as colunas do relatório */
    ASSIGN chworksheet:range("A2:C2"):font:bold = TRUE /* Aplica negrito na linha de titulo das colunas */
    chworksheet:range("A" + STRING(m-linha)):VALUE = "TituloColuna A"
    chworksheet:range("B" + STRING(m-linha)):VALUE = "TituloColuna B"
    chworksheet:range("C" + STRING(m-linha)):VALUE = "TituloColuna C"
    m-linha = m-linha + 1.
    /* Faça o for each desejado */
    FOR EACH tabela NO-LOCK:
    /* Lista os dados da tabela nas colunas */
    ASSIGN chworksheet:range("A" + STRING(m-linha)):VALUE = tabela.campo1
    chworksheet:range("B" + STRING(m-linha)):VALUE = tabela.campo2
    chworksheet:range("C" + STRING(m-linha)):VALUE = tabela.campo3.
    ASSIGN m-linha = m-linha + 1.
    END.

    ASSIGN chExcelApplication:Range("B1:B65000"):NumberFormat = "dd/mm/aaaa" /* Formato de data na col B */
    chExcelApplication:Range("C1:C65000"):NumberFormat = "#.##0,00". /* formato numerico c/2 dec na col C */
    chWorkSheet:pageSetup:RightFooter = "&d/&t" + "-PAGINA:" + "&P/&N". /* Data/Hora e Nr Pg no Rodapé */
    chworksheet:range("B2:C2"):EntireColumn:AutoFit. /* Define automaticamente a largura das colunas */
    chExcelApplication:COLUMNS("A:A"):ColumnWidth = 25.00. /* Define manualmente a largura da coluna A */
    chExcelApplication:Rows("1:65000"):RowHeight = 17.00. /* Tamanho da linha */
    chWorkSheet:pageSetup:printTitleRows = "$1:$1". /* Adiciona o Titulo em todas as paginas de Impressao */
    chWorkSheet:pageSetup:Zoom = 80. /* Aplica 80% para ajuste na impressao da pagina */
    chExcelApplication:Range("A1"):select.
    chExcelApplication:Visible = yes.

    RELEASE OBJECT chExcelApplication.
    RELEASE OBJECT chWorkbook.
  4. sidnei.alves

    sidnei.alves Sem Pontuação

    Valeu meu amigos, muito obrigado pela ajuda.

    Grande abraço.

    Sidnei
  5. Adm4Each@gmail.com

    Adm4Each@gmail.com Sem Pontuação

    Olá amigos.

    Estou procurando exemplos de como capturar dados de uma planilha excel, via Progress, mas não consigo. Por exemplo: tenho um formulário de dados, em excel. Quero capturar alguns dados desta planilha e carregar em uma tabela, via Progress.

    Só acho exemplos para criar uma planilha.

    Alguém sabe como fazer isso? Poderiam me ajudar com alguma dica?

    Obrigado e abraço a todos!
  6. LFBuozi

    LFBuozi Membro Participativo

    A partir daqui, pode começar a brincar:
    Código:
    DEFINE VARIABLE chExcelApplication   AS COM-HANDLE.
    DEFINE VARIABLE chPasta              AS COM-HANDLE.
    DEFINE VARIABLE chPlanilha           AS COM-HANDLE.
    DEFINE VARIABLE c-Nome-Absoluto      AS CHARACTER  NO-UNDO.
    DEFINE VARIABLE c-letra      AS CHARACTER EXTENT 17 NO-UNDO.
    DEFINE VARIABLE i-cont-coluna AS INTEGER     NO-UNDO.
    DEFINE VARIABLE i-cont-linha AS INTEGER     NO-UNDO.
    
    CREATE 'excel.application' chExcelApplication.
    chExcelApplication:Workbooks:Open("C:\temp\teste.xls").
    
    chPlanilha  = chExcelApplication:Sheets:Item(1).
    
    chExcelApplication:VISIBLE = YES.
    ASSIGN i-cont-linha = 1.
    
    REPEAT:
        DISP i-cont-linha
            chPlanilha:COLUMNS:ITEM(1):rows(i-cont-linha):VALUE
            chPlanilha:COLUMNS:ITEM(2):rows(i-cont-linha):VALUE
            chPlanilha:COLUMNS:ITEM(3):rows(i-cont-linha):VALUE
            chPlanilha:COLUMNS:ITEM(1):rows(i-cont-linha):interior:colorindex
            chPlanilha:COLUMNS:ITEM(1):rows(i-cont-linha):FONT:bold
            chPlanilha:COLUMNS:ITEM(1):rows(i-cont-linha):FONT:italic
            chPlanilha:COLUMNS:ITEM(1):rows(i-cont-linha):FONT:COLOR WITH STREAM-IO.
        ASSIGN i-cont-linha = i-cont-linha + 1.
    END.
    RELEASE OBJECT chExcelApplication.
    

Compartilhe esta Página