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




 
 
 
Herramientas Buscar en Tema Desplegado
Prev Mensaje Previo   Próximo Mensaje Próx
  #1  
Viejo 20/09/11, 14:51:30
Edgar89 Edgar89 is offline
Junior Member
 
Fecha de Ingreso: sep 2011
Mensajes: 6
Ayuda para leer archivo excel con sus pestañas!!

Buenos dias, estoy leyendo un archivo excel con distintas pestañas, generalmente lo hace correctamente, pero en ocasiones si el archivo se crea de la forma copiar y pegar, ocurre que el programa agarra la pestaña que este activa y la replica de acuerdo al numero de pestañas que vaya a leer, ejemplo, si quiero leer un archivo con 3 pestañas, y la pestaña activa tenia como texto "hola", el programa me va a cargar el archivo como si en las 3 pestañas estuviese escrito la palabra "hola", ojo esto solo ocurre cuando el archivo se crea copinado y pegando, y pss necesito corregir esto, ps en ocasiones el archivo a cargar seguramente se haya formado copinado y pegando...si alguien me puede ayudar se lo agradeceriaa..aqui les dejo el codigo con los metodos que uso para cargar el archivo...:

contador = 1.
p_rows = 3000.
p_cols = 10.

CALL METHOD c_oi_container_control_creator=>get_container_control
IMPORTING
control = iref_control
error = iref_error.
IF iref_error->has_failed = 'X'.
CALL METHOD iref_error->raise_message
EXPORTING
type = 'E'.
ENDIF.


CREATE OBJECT oref_container
EXPORTING
container_name = 'CONT'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
IF sy-subrc <> 0.
MESSAGE e001(00) WITH 'Error al crear container'.
ENDIF.

CALL METHOD iref_control->init_control
EXPORTING
inplace_enabled = 'X'
r3_application_name = 'EXCEL CONTAINER'
parent = oref_container
IMPORTING
error = iref_error
EXCEPTIONS
javabeannotsupported = 1
OTHERS = 2.
IF iref_error->has_failed = 'X'.
CALL METHOD iref_error->raise_message
EXPORTING
type = 'E'.
ENDIF.

CALL METHOD iref_control->get_document_proxy
EXPORTING
document_type = soi_doctype_excel_sheet
IMPORTING
document_proxy = iref_document
error = iref_error.
IF iref_error->has_failed = 'X'.
CALL METHOD iref_error->raise_message
EXPORTING
type = 'E'.
ENDIF.

CONCATENATE 'FILE://' p_file INTO v_document_url.

CALL METHOD iref_document->open_document
EXPORTING
document_title = 'Excel'
document_url = v_document_url
open_inplace = 'X'
IMPORTING
error = iref_error.
IF iref_error->has_failed = 'X'.
MESSAGE e000(38) WITH 'Error al Leer el Archivo'.
ENDIF.

CALL METHOD iref_document->get_spreadsheet_interface
EXPORTING
no_flush = ' '
IMPORTING
error = iref_error
sheet_interface = iref_spreadsheet.

IF iref_error->has_failed = 'X'.
CALL METHOD iref_error->raise_message
EXPORTING
type = 'I'.
LEAVE LIST-PROCESSING.
ENDIF.


CALL METHOD iref_spreadsheet->get_sheets
EXPORTING
no_flush = ' '
IMPORTING
sheets = i_sheets
error = iref_error.
IF iref_error->has_failed = 'X'.
CALL METHOD iref_error->raise_message
EXPORTING
type = 'I'.
LEAVE LIST-PROCESSING.
ENDIF.
CLEAR p_file.
contador = 1.

" LOOP para recorrer cada una de las pestañas que contiene el archivo de Excel.
LOOP AT i_sheets INTO wa_sheets.

TRANSLATE wa_sheets-sheet_name to upper case.

it_pestanascontrol-nombre = wa_sheets-sheet_name.
it_pestanascontrol-numero = contador.
add 1 to contador.
APPEND it_pestanascontrol.


CALL METHOD iref_spreadsheet->select_sheet
EXPORTING
name = wa_sheets-sheet_name
IMPORTING
error = iref_error.
IF iref_error->has_failed = 'X'.
EXIT.
ENDIF.
CALL METHOD iref_spreadsheet->set_selection
EXPORTING
top = 1
left = 1
rows = p_rows
columns = p_cols.

CALL METHOD iref_spreadsheet->insert_range
EXPORTING
name = 'Test'
rows = p_rows
columns = p_cols
no_flush = ''
IMPORTING
error = iref_error.
IF iref_error->has_failed = 'X'.
EXIT.
ENDIF.

REFRESH i_data.

CALL METHOD iref_spreadsheet->get_ranges_data
EXPORTING
all = 'X'
IMPORTING
contents = i_data
error = iref_error
CHANGING
ranges = i_ranges.
REFRESH it_fianzasl.
ENDLOOP.

El ultimo metodo es el que se encarga de leer el contenido de la pestaña, nos e si deba limpiar algun dato antes de llamarlo o cual sera la razon por la cual se me presenta este error, si alguien me puede ayudar se la agradeceria mucho..
Responder Con Cita
 


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 17:34:23.


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