ABAP - Exportar Tabla a excel... Parte II

 
Vista:

Exportar Tabla a excel... Parte II

Publicado por CLillo (2 intervenciones) el 18/02/2002 21:08:09
Con respecto a la respuesta enviada... le aclaro que lo que requiero es que cuando estoy "debagueando" el programa ABAP pueda dicha tabla interna en Momento de EJECUCION poder llevarla a excel o TXT...

PD: Gracias por la atención prestada.
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

Exportar Tabla a excel... Parte II

Publicado por Alejandro (226 intervenciones) el 11/04/2023 17:31:52
Gracias por la aclaración. En ese caso, puede utilizar el siguiente código para exportar una tabla interna en tiempo de ejecución a un archivo de Excel o TXT:

Para exportar a un archivo Excel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DATA: lv_file TYPE string VALUE 'c:\temp\mydata.xlsx',
      lr_excel TYPE ole2_object,
      lr_workbook TYPE ole2_object,
      lr_sheet TYPE ole2_object,
      lr_range TYPE ole2_object.
 
CREATE OBJECT lr_excel 'excel.application'.
SET PROPERTY OF lr_excel 'visible' = 1.
 
CALL METHOD OF lr_excel 'workbooks' = lr_workbook.
CALL METHOD OF lr_workbook 'add'.
 
CALL METHOD OF lr_excel 'Range' = lr_range EXPORTING #1 = 'A1'.
SET PROPERTY OF lr_range 'Value' = itab.
 
CALL METHOD OF lr_range 'EntireColumn' = lr_range EXPORTING #1 = 'A1'.
SET PROPERTY OF lr_range 'ColumnWidth' = 20.
 
CALL METHOD OF lr_sheet 'SaveAs' EXPORTING #1 = lv_file.
CALL METHOD OF lr_workbook 'close'.

Este código utiliza OLE2 para abrir Excel y crear un archivo. La tabla interna "itab" se copia en la hoja de Excel y se guarda el archivo en la ubicación especificada.

Para exportar a un archivo TXT:

1
2
3
4
5
6
7
8
9
10
11
12
13
DATA: lv_file TYPE string VALUE 'c:\temp\mydata.txt',
      lv_line TYPE string,
      lv_sep TYPE char10 VALUE '|'.
 
OPEN DATASET lv_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
 
LOOP AT itab INTO DATA(ls_line).
  TRANSFER ls_line TO lv_line.
  REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>cr_lf IN lv_line WITH lv_sep.
  TRANSFER lv_line TO lv_file.
ENDLOOP.
 
CLOSE DATASET lv_file.

Este código abre un archivo TXT y escribe cada registro de la tabla interna "itab" en una línea separada. El separador utilizado es el carácter "|" en este ejemplo, pero puede cambiarlo a cualquier carácter que desee.

Espero que esto sea útil para usted.
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