Excel - abrir planilha e inserir linha

Discussão em 'Progress 4GL' iniciado por Agnaldo, Maio 8, 2015.

  1. Agnaldo

    Agnaldo Membro Ativo

    Alguém tem um exemplo de abrir uma planilha existente e "appendar" mais linhas ao final dela?
  2. elmo

    elmo Membro Ativo

    Bom dia,
    Eu tenho um exemplo que abre uma planiha existente e insere as informações, mas insere em campos predeterminado, não testo ou procuro ultima linha ou coluna.
    Se precisar me avisa.
  3. fernandofarah

    fernandofarah Membro Participativo

    Uso assim:

    Código:
    PROCEDURE pi-insere-linha:
        DEF INPUT PARAMETER i-linha AS INT.
    
            chExcelApplication:ROWS(string(i-linha) + ':' + string(i-linha)):SELECT.
            chExcelApplication:Selection:insert.
        END PROCEDURE.
  4. Agnaldo

    Agnaldo Membro Ativo

    Olá Elmo.
    Cola aqui.
    Se eu não puder usar, pelo menos, já ajuda outros que precisem de algo semelhante.
  5. elmo

    elmo Membro Ativo

    Código:
    DEF VAR c-arquivo AS char.
    ASSIGN c-arquivo = "c:\temp\es036.csv".
    
    DEF VAR chExApp               AS COM-HANDLE.
    DEF VAR chWorkbook            AS COM-HANDLE.
    DEF VAR chWorksheet           AS COM-HANDLE.
    
    DEF VAR i-linha               AS INT INIT 4 NO-UNDO.
    DEF VAR i-cont                AS INT        NO-UNDO.
    DEF VAR c-plan                AS CHAR       NO-UNDO.
    ASSIGN c-plan = SEARCH('esp/es036.xlsx').
    
    IF c-plan = ? THEN
    DO:
       RUN utp/ut-msgs.p ('show',17006,'Planilha não encontrada~~A planilha modelo para o relatório não foi encontrada, favor contatar TI').
       RETURN ERROR.
    END.
    
    RUN pi-abre-rel(c-plan).
    
    ASSIGN
        chExApp:APPLICATION:DisplayAlerts       = FALSE
        chWorksheet:PageSetup:LeftMargin        = chExApp:InchesToPoints(0.8)
        chWorksheet:PageSetup:RightMargin       = chExApp:InchesToPoints(0.5)
        chWorksheet:PageSetup:TopMargin         = chExApp:InchesToPoints(0.8)
        chWorksheet:PageSetup:BottomMargin      = chExApp:InchesToPoints(0.8)
        chWorksheet:PageSetup:HeaderMargin      = chExApp:InchesToPoints(0.1)
        chWorksheet:PageSetup:FooterMargin      = chExApp:InchesToPoints(0.1)
        chWorksheet:PageSetup:CenterFooter      = 'Página &P de &N'
        chWorksheet:PageSetup:Orientation       = 2  /* 1 - RETRATO ; 2 - PAISAGEM */  
        chWorksheet:PageSetup:PaperSize         = 9  /* A4                         */  
        chWorksheet:PageSetup:Zoom              = 100 /* ZOOM DE IMPRESAO           */  
        chWorksheet:PageSetup:PrintTitleRows    = '$1:$6'                              
        chWorksheet:PageSetup:PrintTitleColumns = '$A:$H'.
    
    PROCEDURE pi-abre-rel:
    
        DEFINE INPUT PARAMETER cArq AS CHAR.
    
        /****   EXECUTA O EXCEL     ****/
        CREATE 'Excel.Application' chExApp.
    
        /* DEIXA O EXCEL INVISIVEL PARA O USUARIO  */
        chExApp:VISIBLE = NO. /* carrega dados demonstrando apenas do final para usu rio*/
        chExApp:SheetsInNewWorkbook = 1.
    
        /* SETA A PLANILHA ATIVA */
        chExApp:Workbooks:ADD(cArq).
        chWorkSheet = chExApp:Sheets:ITEM(1).
    
    END.
    
    PROCEDURE pi-fecha-rel:
      
        /* Acerta colunas */
        chWorkSheet:Cells:EntireColumn:AutoFit.
       
        /* Exporta em formato PDF */
        /* 2007 - chExApp:ActiveWorkbook:ExportAsFixedFormat(0,REPLACE(REPLACE(tt-param.arquivo,'/','\'),'tmp','pdf'),0,TRUE,FALSE,,,TRUE).*/
        /* 2003 - chWorkSheet:PrintOut().*/
    
        chExApp:VISIBLE = YES.
    
        /* Fecha o excel */
        /*chWorkbook = chExApp:Workbooks:CLOSE().*/
    
        /* Finaliza o processo no SO */
        RELEASE OBJECT chExApp     NO-ERROR.
        RELEASE OBJECT chWorkbook  NO-ERROR.
        RELEASE OBJECT chWorksheet NO-ERROR.
    
    END.
  6. baltazar

    baltazar Membro Participativo

    Para saber a ultima linha preenchida

    Código:
    chFolha:UsedRange:Rows:count

Compartilhe esta Página