como crear un libro excel desde sap

4
COMO CREAR UN LIBRO EXCEL DESDE SAP Lo primero antes de todo es incluir el include correcto. Código: INCLUDE ole2incl. Después crearte una serie de datos/objetos dependiendo de lo que necesites hacer: Código: *Para crear excel DATA: excel TYPE ole2_object. DATA: book TYPE ole2_object. DATA: hoja TYPE ole2_object. "hoja DATA: rango TYPE ole2_object. DATA: celda TYPE ole2_object. DATA: item TYPE ole2_object. Creamos el excel: Código: * creamos el excel CREATE OBJECT excel 'excel.application'. CALL METHOD OF excel 'Workbooks' = book. * Abrimos la plantilla CALL METHOD OF book 'Open' EXPORTING #1 = fichero. * set property of excel 'visible' = 1. donde fichero es la ruta a un archivo xls existente. la linea que esta comentada "set property..." indica si queremos ver el proceso de modificacion del excel, o lo hagamos de forma oculta. Y una vez hecho esto vamos modificando, añadiendo cosas al excel con los datos que queremos. Para modificar el contenido de una celda: Código: *&----------------------------------------- ----------------------------* *& Form rellenar_celda

Upload: pauldyk

Post on 01-Dec-2015

30 views

Category:

Documents


2 download

TRANSCRIPT

COMO CREAR UN LIBRO EXCEL DESDE SAP

Lo primero antes de todo es incluir el include correcto. Cdigo:INCLUDE ole2incl.

Despus crearte una serie de datos/objetos dependiendo de lo que necesites hacer:Cdigo:*Para crear excel DATA: excel TYPE ole2_object. DATA: book TYPE ole2_object. DATA: hoja TYPE ole2_object. "hoja DATA: rango TYPE ole2_object. DATA: celda TYPE ole2_object. DATA: item TYPE ole2_object.

Creamos el excel:Cdigo: * creamos el excel CREATE OBJECT excel 'excel.application'. CALL METHOD OF excel 'Workbooks' = book.* Abrimos la plantilla CALL METHOD OF book 'Open' EXPORTING #1 = fichero.* set property of excel 'visible' = 1.

donde fichero es la ruta a un archivo xls existente. la linea que esta comentada "set property..." indica si queremosver el proceso de modificacion del excel, o lo hagamos de forma oculta. Y una vez hecho esto vamos modificando, aadiendo cosas al excel conlos datos que queremos. Para modificar el contenido de una celda:

Cdigo:*&---------------------------------------------------------------------**& Form rellenar_celda*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->COLUMNA text* -->FILA text* -->TEXTO text*----------------------------------------------------------------------* FORM rellenar_celda USING columna fila texto.*rellenamos la celda CALL METHOD OF excel 'cells' = celda EXPORTING #1 = fila #2 = columna. SET PROPERTY OF celda 'value' = texto. FREE OBJECT celda. ENDFORM. "rellenar_celda

Donde fila y columna es el tipico "C" "7", (el juego de hundir la flota vamos). La celda que te modifica es la celda 'columna-fila' de la hoja activa. Para seleccionar una hoja:

Cdigo: * Cogemos el libro CALL METHOD OF books 'item' = book EXPORTING #1 = 1.* Cogemos las hojas CALL METHOD OF book 'sheets' = sheets.* Cogemos la hoja que queremos CALL METHOD OF sheets 'item' = sheet EXPORTING #1 = n.* n es el numero de hoja (de izquierda a derecha segun las pestaas* en el propio excel) empezando por 1.

Para crear una nueva hoja. Te pongo un ejemplo mio y funcionando, lo que hago es,en la primera hoja tengo una plantilla, y copio esa hoja al final.boton derecho sobre la pestaa de la hoja-mover o copiar->(mover al final, y crear una copia) aceptarCdigo: * Seleccionamos la primera hoja (plantilla) y la movemos al final. exporting #1 = countp.

CALL METHOD OF plantilla 'Select'.*se crea una instancia de hoja en la ultima posicion CALL METHOD OF excel 'Sheets' = hoja EXPORTING #2 = countp.

*se copia la plantilla en la hoja CALL METHOD OF plantilla 'Copy' EXPORTING #1 = hoja. FREE OBJECT hoja. counth = countp - 1.*cambiamos de nombre CALL METHOD OF excel 'Sheets' = hoja EXPORTING #1 = countp. CALL METHOD OF plantilla 'Select'.

SET PROPERTY OF hoja 'Name' = i_pa0001-pernr.

CALL METHOD OF excel 'Sheets' = hoja EXPORTING #1 = countp. CALL METHOD OF hoja 'Select'.*nif sociedad PERFORM rellenar_celda USING 'C' '7'cif_soc. ...* y voy tratando mi contador countp ya que hay q tener cuidado* con el rango de numero que acepta. [1,n+1] n = numero de hojas* totales... creo!!! ya no lo recuerdo exactamente...

que mas.... no se, no recuerdo. Ahora preguntars pero de donde te has sacado todos esos nombres!!! de metodos y propiedades y eso...Pues bien, yo lo que hago es, por cada operacion simple que quiero hacer en excel,me grabo una macro, y despues veo el codigo que me genera. Por ejemplo, lo de copiar una hoja al final es el siguiente codigo Visual Basic de Excel.

Cdigo: sub copiar_hoja()'' copiar_hoja macro ' ' sheets("plantilla").Select'mi primera hoja se llama "plantilla" tambien'valdria Sheets(1).Select y Sheets(1).CopySheets("plantilla").Copy After:=Sheets(1)End Sub