estou usando a rotina abaixo e apenas abre o excel mas não coloca nada que informei nas linha 1 e 3 colunas A B C DEFINE VARIABLE chexcelapplication AS office.iface.excel.ExcelWrapper NO-UNDO. DEFINE VARIABLE chworksheet AS office.iface.excel.WorkSheet NO-UNDO. DEFINE VARIABLE chworkbook AS office.iface.excel.Workbook NO-UNDO. DEFINE VARIABLE cell AS office.iface.excel.WorkSheet NO-UNDO. DEFINE VARIABLE i-linha AS INTEGER NO-UNDO. &IF DEFINED(OFFICE_WRAPPERS) &THEN &UNDEFINE OFFICE_WRAPPERS &ENDIF {office/office.i Excel chexcelapplication} IF ERROR-STATUS:ERROR THEN DO: RUN utp/ut-msgs.p (INPUT "show", INPUT 17006, /*Erro*/ INPUT "Excel.":U + "~~" + "Microsoft Excel 2007 não está instalado":U). RETURN "NOK". END. chexcelapplication:APPLICATIONisplayAlerts = FALSE. chexcelapplication:workbooks:add() . chexcelapplication:ActiveSheet:range("A1:M" + string(i-linha)):COPY(). chexcelapplication:VISIBLE = FALSE. chexcelapplication:quit() NO-ERROR. chexcelapplication:workBooks:ADD(). ASSIGN chWorkSheet = chexcelapplication:Sheets:Item(1) cell = chexcelapplication:activesheet. assign chexcelapplication:ActiveSheet:range("A1:A1"):value = "Nome" chexcelapplication:ActiveSheet:range("B1:A1"):value = "Sexo" chexcelapplication:ActiveSheet:range("C1:C1"):value = "Idade". assign chexcelapplication:ActiveSheet:range("A3:A3"):value = "Carlos" chexcelapplication:ActiveSheet:range("B3:A3"):value = "Masc" chexcelapplication:ActiveSheet:range("C3:C3"):value = "65". chexcelapplication:VISIBLE = TRUE. /* chexcelapplication:quit() NO-ERROR. */ /* */
Não precisa colocar todo esse range, basta só informar a célula: chWorkSheet:range("A1"):VALUE = "Nome". Porque tu faz o assign do chWorkSheet mas não usa ele embaixo??