|
#1
|
|||
|
|||
Fichero excel a tabla interna
Como se puede cargar los datos de un fichero excel en una tabla interna?
Gracias |
#2
|
|||
|
|||
Text_convert_xls_to_sap
|
#3
|
|||
|
|||
Podrias explicarme un poquito mas? Donde pongo el nombre de mi tabla interna?
|
#4
|
|||
|
|||
Aqui en el foro de programacion esta resuelta muchas veces esta pregunta, si buscas un poco seguro que encontraras otros posts donde te lo explican con pelos y señales, yo por ejemplo casi sin buscar he encontrado este
|
#5
|
|||
|
|||
Muchas gracias Ballan, siento mucho las molestias.
He utilizado esta función: CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT' EXPORTING FILENAME = Ruta_Archivo I_BEGIN_COL = 1 I_BEGIN_ROW = 1 I_END_COL = 4 I_END_ROW = 2350 TABLES INTERN = Tabla_Excel EXCEPTIONS INCONSISTENT_PARAMETERS = 1 UPLOAD_OLE = 2. Me llena la tabla pero de una forma muy rara, me explico: Yo en mi archivo.xls tengo 2350 registros con 4 campos cada uno o sea: 1 JAVIER SOTO 26/09/1979 esto sería un registro. El tema es que tras utilizar esta función, me rellena la I_Tab pero lo hace de una forma un poco "rara", me crea una tabla en el que cada registro del archivo excel, ocupa 4 registros en mi I_Tab, 1 registro por campo, o sea: FILA COLUMNA VALOR 1 1 1 1 2 Javier 1 3 SOTO 1 4 26/09/1979 y asi con todos registros del excel. Como podría hacer para rellenar mi tabla interna y dejarla como en excel, con un registro con 4 campos? Gracias de nuevo y siento las molestias. |
#6
|
|||
|
|||
Prueba con lo siguiente:
Lee un archivo excel delimitado por comas o tabuladores.
Primero lo pasa a una tabla que contiene solo un registro, y despues lo reparte en los campos que sean necesario con el SPLIT dentro de un loop. DATA: BEGIN OF I_REG OCCURS 0, FIELD(200) TYPE C. DATA: END OF I_REG. DATA: BEGIN OF TI_DATOS OCCURS 0, HAUS like BDCDATA-FVAL, REGIOGROUP like BDCDATA-FVAL, STR_SUPPL2 like BDCDATA-FVAL, STREET like BDCDATA-FVAL, HOUSE_NUM1 like BDCDATA-FVAL, HOUSE_NUM2 like BDCDATA-FVAL, REGPOLIT like BDCDATA-FVAL, REGIOGROUP2 like BDCDATA-FVAL. DATA: END OF TI_DATOS. FORM F_CARGA_ARCHIVO. CALL FUNCTION 'UPLOAD' EXPORTING FILETYPE = 'ASC' IMPORTING CANCEL = V_CANCEL TABLES DATA_TAB = I_REG EXCEPTIONS CONVERSION_ERROR = 1 INVALID_TABLE_WIDTH = 2 INVALID_TYPE = 3 NO_BATCH = 4 UNKNOWN_ERROR = 5 GUI_REFUSE_FILETRANSFER = 6 OTHERS = 7. IF SY-SUBRC NE 0. LOOP AT I_REG. SPLIT I_REG AT ',' INTO TI_DATOS-HAUS TI_DATOS-REGIOGROUP TI_DATOS-STR_SUPPL2 TI_DATOS-STREET TI_DATOS-HOUSE_NUM1 TI_DATOS-HOUSE_NUM2 TI_DATOS-REGPOLIT TI_DATOS-REGIOGROUP2. IF NOT TI_DATOS-HAUS IS INITIAL. APPEND TI_DATOS. ENDIF. ENDLOOP. ENDFORM. " F_CARGA_ARCHIVO Espero te haya servido. |
#7
|
|||
|
|||
Luego tendrias que ir recorriendo la tabla e ir agregando los campos a tu estructura, por eso es mas practica la funcion text_convert_xls_to_sap porque ella lo hace directamente, solo que tarda mas
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|