Fichero excel a tabla interna
Como se puede cargar los datos de un fichero excel en una tabla interna?
Gracias |
Text_convert_xls_to_sap
|
Podrias explicarme un poquito mas? Donde pongo el nombre de mi tabla interna?
|
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
|
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. |
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. |
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
|
Estimado Ballan.
La solución anterior propuesta, resuelve la pregunta de como cargarlos a una tabla interna. He visto que haces una aportación respecto a después tener que cargarlos a una "estructura" pero no ví en la pregunta que dijera que desea cargarlo a una estructura, sino a una tabla interna.
Y en lo que te refieres a más práctico, puede ser que para el programador, pero regularmente me baso en que un programa tenga buen performance, aunque yo me tarde 5 minutos más en el código. Pero bueno, gracias por tus aportaciones, esta critica es constructiva, cuando ayudes hazlo bien por favor y no a medias. Ten en cuenta que hay personas que van empezando, y necesitan apoyo, no regaños. Saludos. |
Pues si te preocupa tanto la performance deberias dejar de usar la funcion UPLOAD ya que esta obsoleta desde hace mucho tiempo, para que la ayuda sea completa y no se quede a medias te cuento que la funcion que se utiliza ahora es la GUI_UPLOAD
Asi bien? |
Ok, señor soberbia.
En cuanto a obsoleto, depende la versión que uses. Yo estoy en ABAP/4 y a la mano esta UPLOAD, también he utilizado la 6.0, y la idea era que el vea la lógica de como bajar su información.
Gracias por tu aporte, es usted muy amable. |
Husos Horarios son GMT. La hora en este momento es 07:38:42. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web