http://saplab.org/2009/03/abap-to-excel/
http://saplab.org/wp-content/ZHCM_ABAP_TO_EXCEL.txt
http://www.richardsantos.net/2009/08/28/sap-export-alv-to-excel-file/
1.TOP
TYPE-POOLS ole2.
DATA: v_excel TYPE ole2_object.
2.F01
FORM exportar_xls.
DATA: v_wrkbkl TYPE ole2_object,
v_wrkbk TYPE ole2_object,
v_row TYPE i.
DATA: ls_path TYPE string,
lc_rpta TYPE c.
PERFORM obtener_ruta_guardar_archivo USING 'Lista de Aspirantes'
'xls'
CHANGING ls_path
lc_rpta.
CHECK lc_rpta = 'T'.
DATA lwa_aspirante_alv TYPE gty_aspirante_alv.
CREATE OBJECT v_excel 'EXCEL.APPLICATION'.
PERFORM manejar_error_excel.
SET PROPERTY OF v_excel 'Visible' = 1.
CALL METHOD OF v_excel 'Workbooks' = v_wrkbkl.
PERFORM manejar_error_excel.
CALL METHOD OF v_wrkbkl 'Add' = v_wrkbk.
PERFORM manejar_error_excel .
* Insertar cabecera
PERFORM insertar_datos_excel USING 1 1 1 'Num. Asp.'.
PERFORM insertar_datos_excel USING 1 2 1 'Ape. Paterno'.
PERFORM insertar_datos_excel USING 1 3 1 'Ape. Materno'.
PERFORM insertar_datos_excel USING 1 4 1 'Nombre'.
PERFORM insertar_datos_excel USING 1 5 1 'Estado'.
PERFORM insertar_datos_excel USING 1 6 1 'Fec. Nac.'.
PERFORM insertar_datos_excel USING 1 7 1 'Lugar. Nac.'.
PERFORM insertar_datos_excel USING 1 8 1 'Pais. Nac.'.
PERFORM insertar_datos_excel USING 1 9 1 'Est. Civ.'.
PERFORM insertar_datos_excel USING 1 10 1 'Posicion Per.'.
PERFORM insertar_datos_excel USING 1 11 1 'Division Per.'.
PERFORM insertar_datos_excel USING 1 12 1 'Grupo Per.'.
PERFORM insertar_datos_excel USING 1 13 1 'Fec. Reg'.
* Insertar detalle
LOOP AT gtd_aspirante_alv INTO lwa_aspirante_alv.
v_row = sy-tabix + 1.
PERFORM insertar_datos_excel USING v_row 1 0 lwa_aspirante_alv-numas.
PERFORM insertar_datos_excel USING v_row 2 0 lwa_aspirante_alv-appat.
PERFORM insertar_datos_excel USING v_row 3 0 lwa_aspirante_alv-apmat.
PERFORM insertar_datos_excel USING v_row 4 0 lwa_aspirante_alv-nombr.
PERFORM insertar_datos_excel USING v_row 5 0 lwa_aspirante_alv-estad.
PERFORM insertar_datos_excel USING v_row 6 0 lwa_aspirante_alv-fnaci.
PERFORM insertar_datos_excel USING v_row 7 0 lwa_aspirante_alv-lnaci.
PERFORM insertar_datos_excel USING v_row 8 0 lwa_aspirante_alv-pnaci.
PERFORM insertar_datos_excel USING v_row 9 0 lwa_aspirante_alv-estci.
PERFORM insertar_datos_excel USING v_row 10 0 lwa_aspirante_alv-poper.
PERFORM insertar_datos_excel USING v_row 11 0 lwa_aspirante_alv-diper.
PERFORM insertar_datos_excel USING v_row 12 0 lwa_aspirante_alv-grper.
PERFORM insertar_datos_excel USING v_row 13 0 lwa_aspirante_alv-fereg.
ENDLOOP.
CALL METHOD OF v_wrkbk 'SAVEAS'
EXPORTING
#1 = ls_path.
CALL METHOD OF v_wrkbk 'CLOSE'.
CALL METHOD OF v_excel 'QUIT'.
FREE OBJECT v_excel.
PERFORM manejar_error_excel.
ENDFORM. "exportar_xls
*&---------------------------------------------------------------------*
*& Form insertar_datos_excel
*&---------------------------------------------------------------------*
* PERFORM insertar_datos_excel USING rows columns boldfont valor
*----------------------------------------------------------------------*
* -->X text
* -->Y text
* -->Z text
* -->VAL text
*----------------------------------------------------------------------*
FORM insertar_datos_excel USING x y z val.
DATA: v_cell TYPE ole2_object,
v_font TYPE ole2_object.
CALL METHOD OF v_excel 'Cells' = v_cell
EXPORTING
#1 = x
#2 = y.
PERFORM manejar_error_excel.
SET PROPERTY OF v_cell 'Value' = val.
PERFORM manejar_error_excel .
GET PROPERTY OF v_cell 'Font' = v_font.
PERFORM manejar_error_excel.
SET PROPERTY OF v_font 'Bold' = z .
PERFORM manejar_error_excel.
ENDFORM. "insertar_datos_excel
*&---------------------------------------------------------------------*
*& Form manejar_error_excel
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM manejar_error_excel.
IF sy-subrc <> 0.
CALL METHOD OF v_excel 'QUIT'.
FREE OBJECT v_excel.
v_excel-handle = -1.
MESSAGE: 'No se pudieron exportar los datos.' TYPE 'E'.
EXIT.
ENDIF.
ENDFORM. "manejar_error_excel
No comments:
Post a Comment