PDA

Ver la Versión Completa : Exportar itab a excel en server


JaNick
21/01/11, 13:24:26
Buenas colegas, soy nuevo en el foro y trainee en mi empresa, la verdad recien empiezo con el lenguaje.
Lo que me mandaron hacer es un programa de fondo que genere un excel en el server, lo que sucede es que queria saber si a este excel lo puedo hacer con lineas y colores, al reporte ya lo tengo hecho pero este me los genera en modo texto.


OPEN DATASET p_file IN TEXT MODE FOR OUTPUT ENCODING DEFAULT.
LOOP AT it_archiv INTO wa_archiv.
CONCATENATE wa_archiv-vbeln
wa_archiv-posnr
wa_archiv-vkorg
" etc...
INTO l_archiv SEPARATED BY cl_abap_char_utilities=>horizontal_tab.
TRANSFER l_archiv TO p_file.
CLEAR : l_archiv.
ENDLOOP.
CLOSE DATASET p_file.

aldape
21/01/11, 22:39:15
Pues no creo que se pueda en abap...

pero igual podrias intentar sacar un archivo HTML... y agregar tags como <b></b>....<a href = '' style='color=#33ff34'>.... etc... con puros concatenate..

al final.... Excel tambien abre archivos html, incluso podrias cambiarle la extension a .xlsx o .xls y enviarselo a tus jefes que quieren que hagas milagros.

Saludos

ballan
24/01/11, 09:36:38
Yo veo mas facil que crees una macro de VBA en el excel que te lo formatee como tu quieras, poniendo colorines y lo que haga falta

Luego una vez que has generado el excel puedes invocar a esa macro y que te haga el trabajo

Para poder llamar a la Macro tendrias que poner algo mas o menos asi

INCLUDE OLE2INCL.

data: go_Excel type ole2_object.

CREATE OBJECT go_Excel 'EXCEL.APPLICATION'.

CALL METHOD OF go_Excel 'RUN'
EXPORTING #1 = "NombredelaMacro".

JaNick
08/04/11, 20:35:15
Mucha gracias por sus ayuda chicos.
Estuve buscando info en la web acerca el tema y varios decian que es imposible hacer que un reporte se ejecute de fondo y este genere un archivo excel en server.

Lo mas cercano que pude hacer es lo siguiente, hacer que me guarde un archivo txt separa por ';' puntos y comas de tipo de formato de archivo CSV.
Lo cual lo descargo del server a la pc con trx CG3Y, le doy dbclick al archivo y me lo habre con el excel sin tirar ningun tipo de cartel, sobre error de formato.


OPEN DATASET p_file IN TEXT MODE FOR OUTPUT ENCODING DEFAULT.
IF SY-SUBRC EQ 0
CONCATENATE p_file '.csv' INTO p_file.
LOOP AT it_archiv INTO wa_archiv.
CONCATENATE wa_archiv-vbeln
wa_archiv-posnr
wa_archiv-vkorg
" etc...
INTO l_archiv SEPARATED BY ';'.
TRANSFER l_archiv TO p_file.
CLEAR : l_archiv.
ENDLOOP.
CLOSE DATASET p_file.
ENDIF.