Pregunta: | 62444 - LEER CONTROL OLE EXCEL |
Autor: | Luis Zanini |
Saludos amigos listeros.
Tengo un control ole excel de nombre ctrl_ole_excel, que quisiera leer los datos que tiene para pasarlos a un datawindow (quiero darle la facilidad al usuario que modifique en el propio ole los datos necesarios), pero no se como acceder a cada una de las celdas. O de lo contrario como asocio el Control Ole con un Objeto Ole, porque desde ahí si podría acceder (obj_ole_excel.Application.ActiveWorkbook.Worksheets[1].cells[1,1].value) Hago lo siguiente: ctrl_ole_excel.insertfile("c:prueba.xls") obj_ole_excel = CREATE OLEObject obj_ole_excel.ConnectToObject("", "Excel.Application") obj_ole_excel.object = ctrl_ole_excel.object //pero me da "Error accessing external object property object": Espero me puedan ayudar. Gracias. |
Respuesta: | David Ayala |
A mi me funciona así copiando las filas que quiero de la excel al portapapeles y pegandolas en la datawindows:
// IMPORTAR EXCEL A DATAWINDOWS EXTERNA oleobject excel excel = create OLEObject ll_rtn = excel.ConnectToNewObject("excel.application") IF ll_rtn <> 0 THEN MessageBox('Excel error','No puede conectarse a Excel') DESTROY excel RETURN 0 END IF excel.WorkBooks.Open("c:prueba.xls") excel.Application.Visible = false excel.windowstate = 2 // 1 : Normal, 2 : Minimize, 3 : Maximize lb_sheet_rtn = excel.worksheets(1).Activate excel.Worksheets(1).Range("A4:AX60").Copy // copiar al clipboard // Importar desde clipboard ll_cnt = dw_excel.importclipboard() IF ll_cnt <= 1 THEN Messagebox("Info", "No se encontró") END IF excel.Worksheets(1).Range("A10000:A10000").Copy //reset clipboard excel.Application.Quit excel.DisConnectObject() DESTROY excel Espero que te sirva. Saludos. |