1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

#Mesclar dois arquivos Excel

Discussão em 'Progress 4GL' iniciado por Henry, Setembro 23, 2014.

  1. Henry

    Henry Sem Pontuação

    Boa tarde,

    Gostaria de saber se existe a possibilidade de mesclar vários arquivos Excel em um só, por exemplo:
    Dentro do For each estou importando o modelo e atribuindo o valor da tabela na célula desejada, porém ao invés de abrir um arquivo com todos os registros está abrindo vários arquivos, um para cada registro. Segue o código:

    PROCEDURE pi-imprime:

    DEFINE VARIABLE ch-Excel AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE i AS INTEGER INITIAL 2 NO-UNDO.

    CREATE "Excel.Application" ch-Excel.

    FOR EACH estabelecimento :

    DEFINE VARIABLE ch-Worksheet AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE ch-Workbook AS COM-HANDLE NO-UNDO.

    ch-Workbook = ch-Excel:WorkBooks:ADD(SEARCH("modelo.xlsx")).
    ch-Excel:Sheets(1):select().
    ch-Worksheet = ch-Workbook:sheets:item(1).

    ch-Worksheet:range('L' + STRING(i)):VALUE = estabelecimento.cod-estabel.

    ch-Workbook:saved = TRUE.
    RELEASE OBJECT ch-Worksheet NO-ERROR.
    RELEASE OBJECT ch-Workbook NO-ERROR.

    ASSIGN i = i + 2. /* Numero de linhas que vai pular na coluna 'L' */

    END.

    ch-Excel:VISIBLE = TRUE.
    RELEASE OBJECT ch-Excel NO-ERROR.

    END PROCEDURE.

    Se alguem puder me ajudar ficarei muito agradecido.
  2. pizzaia

    pizzaia Membro Participativo

    olá. se entendi é isso.
    Código:
    PROCEDURE pi-imprime:
    
        DEFINE VARIABLE ch-Excel AS COM-HANDLE NO-UNDO.
        DEFINE VARIABLE i AS INTEGER INITIAL 2 NO-UNDO.
    
        CREATE "Excel.Application" ch-Excel.
        DEFINE VARIABLE ch-Worksheet AS COM-HANDLE NO-UNDO.
        DEFINE VARIABLE ch-Workbook AS COM-HANDLE NO-UNDO.
    
        ch-Workbook = ch-Excel:WorkBooks:ADD(SEARCH("modelo.xlsx")).
        ch-Excel:Sheets(1):select().
        ch-Worksheet = ch-Workbook:sheets:item(1).
    
        FOR EACH estabelecimento
            NO-LOCK: /* <============= Não trave a tabela */
            ch-Worksheet:range('L' + STRING(i)):VALUE = estabelecimento.cod_estab.
            ASSIGN i = i + 2. /* Numero de linhas que vai pular na coluna 'L' */
        END.
    
        ch-Workbook:saved = TRUE.
        RELEASE OBJECT ch-Worksheet NO-ERROR.
        RELEASE OBJECT ch-Workbook NO-ERROR.
    
        ch-Excel:VISIBLE = TRUE.
        RELEASE OBJECT ch-Excel NO-ERROR.
    
    END PROCEDURE.
    
    RUN pi-imprime.
    

Compartilhe esta Página