ABAP - excel con ole2

 
Vista:

excel con ole2

Publicado por Paco (3 intervenciones) el 27/03/2007 13:11:00
Buenas a todos!

Tengo un problemita con los objetos ole2 para crear un excel.
A partir de una plantilla, me tengo q crear una copia de esta y a su vez tantos libros de trabajo dependiendo de unos valores( cada libro es la copia de la plantilla ). Mi problema es que consigo hacer la copia de la plantilla pero solo en un libro de trabajo, en el resto no me conserva los datos de la plantilla.

Teneis alguna solución?
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

excel con ole2

Publicado por Alejandro (226 intervenciones) el 12/04/2023 19:45:23
Hola Paco.

Para crear varias copias de una plantilla de Excel utilizando objetos OLE2 en ABAP, podrías seguir los siguientes pasos:

1. Crea un objeto OLE2 para Excel y abre la plantilla original.

1
2
3
4
5
DATA: go_excel TYPE ole2_object,
      go_workbook TYPE ole2_object.
 
go_excel = cl_ole2_application=>create_object('Excel.Application').
go_workbook = go_excel->Workbooks->Open('ruta_de_la_plantilla.xlsx').

2. Haz una copia de la plantilla original y guarda los cambios.

1
2
3
4
DATA: go_new_workbook TYPE ole2_object.
 
go_new_workbook = go_workbook->Copy().
go_new_workbook->SaveAs('ruta_de_la_nueva_copia.xlsx').

3. Modifica los datos de la nueva copia según tus necesidades.

1
2
3
4
DATA: go_worksheet TYPE ole2_object.
 
go_worksheet = go_new_workbook->Worksheets('Nombre_de_la_hoja').
go_worksheet->Cells(1,1)->Value = 'Nuevo valor'.

4. Repite los pasos 2 y 3 para crear y modificar todas las copias necesarias.

1
2
3
4
5
6
DO num_copias TIMES.
  go_new_workbook = go_workbook->Copy().
  go_new_workbook->SaveAs('ruta_de_la_nueva_copia_' && sy-index && '.xlsx').
  go_worksheet = go_new_workbook->Worksheets('Nombre_de_la_hoja').
  go_worksheet->Cells(1,1)->Value = 'Nuevo valor'.
ENDDO.

Espero que esto te ayude a crear varias copias de una plantilla en Excel utilizando objetos OLE2 en ABAP.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar