Hola, agradecería me den algunas ayudas para resolver este problema.
Necesito descargar una tabla interna a EXCEL, y una vez hecho esto, conectarme al archivo generado, y darle un formato especial utilizando OLE.
Por ahora estoy usando la función WS_DOWNLOAD para descargar el archivo al disco, pero cuando me quiero conectar al archivo y formatearlo, los cambios no se llevan a cabo.
Les dejo el código de mi programa...
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = lv_arch "Ruta del archivo
filetype = 'DAT'
mode = space
TABLES
data_tab = lt_tabla
CREATE OBJECT excel 'EXCEL.APPLICATION'.
SET PROPERTY OF excel 'VISIBLE' = 1.
CALL METHOD OF excel 'WORKBOOKS' = libros_trabajo.
CALL METHOD OF libros_trabajo 'Open' = libro EXPORTING
#1 = pvi_arch.
CALL METHOD OF libro 'Worksheets' = ole_sheets.
CALL METHOD OF ole_datasheet 'Copy'.
GET PROPERTY OF excel 'ACTIVESHEET' = ole_sheet.
CALL METHOD OF ole_sheet 'RANGE' = rango EXPORTING
#1 = 'A1' #2 = 'Q1'.
* Se formatea el ancho de columna
SET PROPERTY OF rango 'COLUMNWIDTH' = 21.
FREE OBJECT rango.
CALL METHOD OF ole_sheet 'RANGE' = rango EXPORTING
#1 = 'A1'.
CALL METHOD OF rango 'ENTIREROW' = row.
CALL METHOD OF row 'INSERT'.
FREE OBJECT rango.
FREE OBJECT row.
CALL METHOD OF ole_sheet 'RANGE' = rango EXPORTING
#1 = 'A1'.
CALL METHOD OF rango 'ENTIREROW' = row.
SET PROPERTY OF row 'ROWHEIGHT' = '21.75'.
*Combina las celdas
CALL METHOD OF row 'SELECT'.
SET PROPERTY OF row 'MERGECELLS' = 1.
*Centrar el título (?????) "Esto no funciona
GET PROPERTY OF row 'HORIZONTALALIGNMENT' = pos.
SET PROPERTY OF pos 'xlCenter' = 1.
GET PROPERTY OF row 'VERTICALALIGNMENT' = pos.
SET PROPERTY OF pos 'xlCenter' = 1.
*Seteo el tipo, negrita, y tamaño de letra
CALL METHOD OF row 'FONT'.
GET PROPERTY OF row 'FONT' = fuente.
SET PROPERTY OF fuente 'BOLD' = 1.
SET PROPERTY OF fuente 'NAME' = 'ARIAL'.
SET PROPERTY OF fuente 'SIZE' = 20.
*Escribe el título
CALL METHOD OF row 'SELECT'.
SET PROPERTY OF row 'FORMULAR1C1' = 'Anexo A'.
*Dejo 1 línea vacía entre el título y los encabezados
FREE OBJECT rango.
FREE OBJECT row.
CALL METHOD OF ole_sheet 'RANGE' = rango EXPORTING
#1 = 'A2'.
CALL METHOD OF rango 'ENTIREROW' = row.
CALL METHOD OF row 'INSERT'.
CALL METHOD OF excel 'SAVEAS'
EXPORTING
#1 = pvi_arch.
CALL METHOD OF excel 'QUIT'.
CALL METHOD OF excel 'CLOSE'.
FREE OBJECT excel.
Necesito descargar una tabla interna a EXCEL, y una vez hecho esto, conectarme al archivo generado, y darle un formato especial utilizando OLE.
Por ahora estoy usando la función WS_DOWNLOAD para descargar el archivo al disco, pero cuando me quiero conectar al archivo y formatearlo, los cambios no se llevan a cabo.
Les dejo el código de mi programa...
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = lv_arch "Ruta del archivo
filetype = 'DAT'
mode = space
TABLES
data_tab = lt_tabla
CREATE OBJECT excel 'EXCEL.APPLICATION'.
SET PROPERTY OF excel 'VISIBLE' = 1.
CALL METHOD OF excel 'WORKBOOKS' = libros_trabajo.
CALL METHOD OF libros_trabajo 'Open' = libro EXPORTING
#1 = pvi_arch.
CALL METHOD OF libro 'Worksheets' = ole_sheets.
CALL METHOD OF ole_datasheet 'Copy'.
GET PROPERTY OF excel 'ACTIVESHEET' = ole_sheet.
CALL METHOD OF ole_sheet 'RANGE' = rango EXPORTING
#1 = 'A1' #2 = 'Q1'.
* Se formatea el ancho de columna
SET PROPERTY OF rango 'COLUMNWIDTH' = 21.
FREE OBJECT rango.
CALL METHOD OF ole_sheet 'RANGE' = rango EXPORTING
#1 = 'A1'.
CALL METHOD OF rango 'ENTIREROW' = row.
CALL METHOD OF row 'INSERT'.
FREE OBJECT rango.
FREE OBJECT row.
CALL METHOD OF ole_sheet 'RANGE' = rango EXPORTING
#1 = 'A1'.
CALL METHOD OF rango 'ENTIREROW' = row.
SET PROPERTY OF row 'ROWHEIGHT' = '21.75'.
*Combina las celdas
CALL METHOD OF row 'SELECT'.
SET PROPERTY OF row 'MERGECELLS' = 1.
*Centrar el título (?????) "Esto no funciona
GET PROPERTY OF row 'HORIZONTALALIGNMENT' = pos.
SET PROPERTY OF pos 'xlCenter' = 1.
GET PROPERTY OF row 'VERTICALALIGNMENT' = pos.
SET PROPERTY OF pos 'xlCenter' = 1.
*Seteo el tipo, negrita, y tamaño de letra
CALL METHOD OF row 'FONT'.
GET PROPERTY OF row 'FONT' = fuente.
SET PROPERTY OF fuente 'BOLD' = 1.
SET PROPERTY OF fuente 'NAME' = 'ARIAL'.
SET PROPERTY OF fuente 'SIZE' = 20.
*Escribe el título
CALL METHOD OF row 'SELECT'.
SET PROPERTY OF row 'FORMULAR1C1' = 'Anexo A'.
*Dejo 1 línea vacía entre el título y los encabezados
FREE OBJECT rango.
FREE OBJECT row.
CALL METHOD OF ole_sheet 'RANGE' = rango EXPORTING
#1 = 'A2'.
CALL METHOD OF rango 'ENTIREROW' = row.
CALL METHOD OF row 'INSERT'.
CALL METHOD OF excel 'SAVEAS'
EXPORTING
#1 = pvi_arch.
CALL METHOD OF excel 'QUIT'.
CALL METHOD OF excel 'CLOSE'.
FREE OBJECT excel.
Comentario