ABAP OLE2: Abrir, modificar y guardar archivo Excel

PARAMETERS: p_file TYPE fileintern,
            p_visi TYPE xfeld.

DATA: o_excel TYPE ole2_object,
      o_libro TYPE ole2_object,
      o_hoja  TYPE ole2_object,
      o_celda TYPE ole2_object.

**********************************************************************
***  APERTURA DEL ARCHVIO EXCEL
**********************************************************************
*    Crear objeto Excel
CREATE OBJECT o_excel 'EXCEL.APPLICATION'.
IF sy-subrc NE 0.
*  MESSAGE e???(??) WITH 'No es posible crear el objeto'.
ENDIF.

*    No visualizar alertas
SET PROPERTY OF o_excel 'DisplayAlerts' = 0.

*    Visibilidad
IF p_visi IS INITIAL.
  SET PROPERTY OF o_excel 'Visible' = 0.
ELSE.
  SET PROPERTY OF o_excel 'Visible' = 1.
ENDIF.

CALL METHOD OF o_excel 'Workbooks' = o_libro.

CALL METHOD OF o_libro 'Open'
  EXPORTING
    #1 = p_file.

CALL METHOD OF o_excel 'WorkSheets' = o_hoja
  EXPORTING #1 = 1.
CALL METHOD OF o_hoja 'Activate'.

**********************************************************************
***  MODIFICACIONES/AÑADIDOS EN EL ARCHIVO EXCEL
**********************************************************************
*    Modificamos el archivo
CALL METHOD OF o_excel 'Range' = o_celda
  EXPORTING #1 = 'A1'.

SET PROPERTY OF o_celda 'Value' = sy-uzeit.

FREE OBJECT o_celda.

**********************************************************************
***  GUARDADO Y CIERRE DEL ARCHVIO EXCEL
**********************************************************************
*    Guardar el archivo
CALL METHOD OF o_hoja 'SaveAs'
  EXPORTING
    #1 = p_file
    #2 = 61. "Formato XLSX

CALL METHOD OF o_libro 'Close'.
FREE OBJECT o_hoja.
FREE OBJECT o_libro.
CALL METHOD OF o_excel 'Quit'.
FREE OBJECT o_excel.