MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 13/02/08, 14:53:11
yerotos yerotos is offline
Member
 
Fecha de Ingreso: nov 2007
Mensajes: 39
Exclamation Fichero excel a tabla interna

Como se puede cargar los datos de un fichero excel en una tabla interna?

Gracias
Responder Con Cita
  #2  
Viejo 13/02/08, 15:02:19
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Text_convert_xls_to_sap
Responder Con Cita
  #3  
Viejo 13/02/08, 15:40:21
yerotos yerotos is offline
Member
 
Fecha de Ingreso: nov 2007
Mensajes: 39
Podrias explicarme un poquito mas? Donde pongo el nombre de mi tabla interna?
Responder Con Cita
  #4  
Viejo 13/02/08, 17:03:03
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
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

Responder Con Cita
  #5  
Viejo 13/02/08, 17:14:34
yerotos yerotos is offline
Member
 
Fecha de Ingreso: nov 2007
Mensajes: 39
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.
Responder Con Cita
  #6  
Viejo 13/02/08, 22:44:22
larmadovr larmadovr is offline
Member
 
Fecha de Ingreso: ene 2008
Localización: Monterrey N.L. México
Mensajes: 77
Thumbs up 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.
Responder Con Cita
  #7  
Viejo 14/02/08, 10:03:53
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
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
Responder Con Cita
  #8  
Viejo 14/02/08, 14:30:59
larmadovr larmadovr is offline
Member
 
Fecha de Ingreso: ene 2008
Localización: Monterrey N.L. México
Mensajes: 77
Thumbs up 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.
Responder Con Cita
  #9  
Viejo 14/02/08, 15:13:32
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
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?
Responder Con Cita
  #10  
Viejo 14/02/08, 15:18:20
larmadovr larmadovr is offline
Member
 
Fecha de Ingreso: ene 2008
Localización: Monterrey N.L. México
Mensajes: 77
Thumbs down 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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 14:52:24.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web