Para pasar información de un fichero Excel a una tabla interna en ABAP, se utiliza la función ALSM_EXCEL_TO_INTERNAL_TABLE:
Parametros de entrada
- filename: Ruta del fichero en nuestro sitema local.
- i_begin_col / i_end_col: Parametros para definir que columnas con las que se van a incluir en la tabla interna.
- i_begin_row / i_end_row: Parametros para definir que filas se van a incluir en la tabla interna.
Parametros de salida
- intern: Tabla interna con el contenido del fichero excel
Función
DATA: lv_ruta_fichero TYPE rlgrap-filename. DATA: BEGIN OF li_excel OCCURS 0. INCLUDE STRUCTURE alsmex_tabline. DATA: END OF li_excel. CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' EXPORTING filename = lv_ruta_fichero i_begin_col = 1 i_begin_row = 1 i_end_col = 100 i_end_row = 30000 TABLES intern = li_excel EXCEPTIONS inconsistent_parameters = 1 upload_ole = 2 others = 3.
Consideraciones
- La estructura de la tabla li_excel deberá ser de tener en cuenta los datos del fichero (al cargar fechas, importes, longitud de textos, …)
- Al leer el contenido de nuestra tabla interna deberemos de conocer el fichero excel y mediante la lectura del valor de cada columna obtendremos el valor equivalente al fichero excel.
Suponiendo que nuestro fichero excel tiene la esta estructura, recorreremos la tabla de la siguiente manera:
Nombre | Apellido | Edad |
Maria | Fernandez | 32 |
Jesus | Alvira | 35 |
Como leer de la tabla interna
SORT iexcel BY row col. “Ordenamos la tabla por Filas y Columnas LOOP AT iexcel WHERE row <> 00001. “Ignoramos la primera fila de cabecera CASE iexcel-col. WHEN 1. “Nombre * iexcel-value. “Accedemos al valor del primer registro WHEN 2. “Apellido * WHEN 3. “Edad * ENDCASE. ENDLOOP.
Para ver mas tutoriales de SAP, pulse en el siguiente enlace: Listado de tutoriales