RE:Como Cargar Un Archivo De Excel A Progress?
Te mando un ejemplo para direccionar la salida de un reporte a una hoja de Excel, espero que te sirva:
DEFINE VARIABLE chExcelApplication AS COM-HANDLE.
DEFINE VARIABLE chWorkbook AS COM-HANDLE.
DEFINE VARIABLE chWorksheet AS COM-HANDLE.
DEFINE VARIABLE chChart AS COM-HANDLE.
DEFINE VARIABLE chWorksheetRange AS COM-HANDLE.
DEFINE VARIABLE iCount AS INTEGER.
DEFINE VARIABLE iIndex AS INTEGER.
DEFINE VARIABLE iTotalNumberOfOrders AS INTEGER.
DEFINE VARIABLE iMonth AS INTEGER.
DEFINE VARIABLE dAnnualQuota AS DECIMAL.
DEFINE VARIABLE dTotalSalesAmount AS DECIMAL.
DEFINE VARIABLE iColumn AS INTEGER INITIAL 1.
DEFINE VARIABLE cColumn AS CHARACTER.
DEFINE VARIABLE cRange AS CHARACTER.
/* Crea un objeto para una nueva aplicación de Excel*/
CREATE "Excel.Application" chExcelApplication.
/* Ejecuta Excel haciendolo visible al usuario */
chExcelApplication:Visible = TRUE.
/* Crea una nueva hoja de trabajo */
chWorkbook = chExcelApplication:Workbooks:Add().
/* Activa la hoja de trabajo */
chWorkSheet = chExcelApplication:Sheets:Item(1).
/* Establece las columnas en la hoja de trabajo */
chWorkSheet:Columns("A"):ColumnWidth = 18.
chWorkSheet:Columns("B"):ColumnWidth = 12.
chWorkSheet:Columns("C"):ColumnWidth = 12.
chWorkSheet:Range("A1:C1"):Font:Bold = TRUE.
chWorkSheet:Range("A1"):Value = "Ventas".
chWorkSheet:Range("B1"):Value = "Ventas Totales".
chWorkSheet:Range("C1"):Value = "Cuota Anual".
/* Hace un barrido de la tabla de vendedoeres y los despliega en la hoja*/
FOR EACH ad_mstr:
dAnnualQuota = 0.
iTotalNumberOfOrders = 0.
dTotalSalesAmount = 0.
iColumn = iColumn + 1.
FOR EACH so_mstr where so_cust = ad_addr:
iTotalNumberOfOrders = iTotalNumberOfOrders + 1.
FIND ih_hist WHERE ih_hist.ih_nbr = so_mstr.so_nbr NO-ERROR.
IF AVAILABLE ih_hist THEN do:
for each idh_hist where idh_inv_nbr = ih_inv_nbr
and idh_nbr = ih_nbr no-lock:
dTotalSalesAmount = dTotalSalesAmount + (idh_qty_inv * idh_price).
end.
end.
END.
DO iMonth = 1 TO 12:
find cm_mstr where cm_addr = ad_addr no-lock no-error.
dAnnualQuota = dAnnualQuota + cm_mstr.cm_balance.
END.
cColumn = STRING(iColumn).
cRange = "A" + cColumn.
chWorkSheet:Range(cRange):Value = ad_mstr.ad_name.
cRange = "B" + cColumn.
chWorkSheet:Range(cRange):Value = dTotalSalesAmount.
cRange = "C" + cColumn.
chWorkSheet:Range(cRange):Value = dAnnualQuota.
END.
chWorkSheet:Range("B2:C10"):Select().
chExcelApplication:Selection:Style = "Currency".
/* Crea una gráfica usando los datos desplegados */
chWorksheetRange = chWorksheet:Range("A1:C10").
chWorksheet:ChartObjects:Add(10,150,425,300):Activate.
chExcelApplication:ActiveChart:ChartWizard(chWorksheetRange, 3, 1, 2, 1, 1, TRUE,
"1996 Ventas", "Vendedores", "Ventas Anuales").
/* Crea la gráfica*/
chChart=chExcelApplication:Charts:Add().
chChart:Name = "Test Chart".
chChart:Type = 11.
/* Libera objetos */
RELEASE OBJECT chExcelApplication.
RELEASE OBJECT chWorkbook.
RELEASE OBJECT chWorksheet.
RELEASE OBJECT chChart.
RELEASE OBJECT chWorksheetRange.
SALUDOS