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.
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.
Olá Elmo. Cola aqui. Se eu não puder usar, pelo menos, já ajuda outros que precisem de algo semelhante.
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.