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..;) |
la verdad que es raro es problema que tienes... yo una vez sola tuve que realizar eso y me base en el link:
pero no podria asesorarte sobre el problema que tienes |
Recien veo que estuviste comentando en ese foro... si ahi no te pueden ayudar estas al horno con papas :P
|
ah ok gracias..;), y pues si, con esa otra funcion el problema que me genero es que si el archivo era muy grande, mostraba algunas advertencias de excel, que si si se habia dejado gran cantidad de datos en el portapapeles y tal, cosas asi y pss por eso decidi usar esta otra...;)
|
Husos Horarios son GMT. La hora en este momento es 06:53:15. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web