insertar datos de planilla excel a una tabla de power builder
Bendiciones
Creo que lo que necesitas es hacer una funcion, que en mi caso le llame of_procesa_excel. Esta funcion debes crearla a nivel de la ventana. El nombre de la datawindow lo envio como parametro por referencia para que retorne el valor que le agrego en la funcion.
Cualquier duda, puedes escribirme
//10-08-2010 DR: Script de http://www.mtbase.com/foros/respuestas.jsp?t_id=3683&t_prd=3&foro=PowerBuilder
string ls_err
long ll_rc,li_ret
OLEObject loo_excel
If GetFileOpenName("Elija el nombre del archivo Excel", &
is_PathFileName, is_FileName, "XLS", &
"Archivo Excel 2007 (*.xlsx),*.xlsx," &
+"Archivo Excel (*.xls),*.xls") < 1 Then return 0
loo_excel = CREATE OLEObject
li_ret = loo_excel.ConnectToObject("excel.application")
if li_ret <> 0 then
li_ret = loo_excel.ConnectToNewObject("excel.application")
end if
Choose Case li_ret
case 0
ls_err='Conexión Satisfactoria con OLE (Excel)'
case -1
ls_err='Error. Llamada Inválida a objeto OLE (Excel)'
case -2
ls_err='Error. Nombre de la clase no encontrada con OLE (Excel)'
case -3
ls_err='Error. El objeto OLEObject no puede ser creado (Excel)'
case -4
ls_err='Error. No se puede conectar con el objeto (EXCEL)'
case -5
ls_err='Error no tratado (EXCEL)'
case else
ls_err='Error desconocido: '+string(li_ret)+'(EXCEL)'
End Choose
if li_ret <> 0 then// Se desconecta el objeto OLE y se destruye
clipboard('')
loo_excel.workbooks.close()
loo_excel.Application.Quit
loo_excel.disconnectobject()
DESTROY loo_excel
return 0
end if
loo_excel.workbooks.open( is_PathFileName )
loo_excel.visible = false
loo_excel.ActiveCell.CurrentRegion.Select()
loo_excel.Selection.Copy()
ll_rc = adw_dwimport.ImportClipBoard (2)
Choose Case ll_rc
case -1
messagebox('Error -1','No rows or startrow value supplied is greater than the number of rows in the string')
case -3
messagebox('Error -3','Error. Argumento Inválido..!!')
case -4
messagebox('Error -4','Error. Entrada Inválida..!!')
case -13
messagebox('Error -13','Error. Datawindows no soporta importación de datos..!!')
case -14
messagebox('Error -14','Error. Al resolver Datawindows anidado..!!')
End Choose
if ll_rc < 0 then // Se desconecta el objeto OLE y se destruye
clipboard('')
loo_excel.workbooks.close()
loo_excel.Application.Quit
loo_excel.disconnectobject()
DESTROY loo_excel
return 0
end if
clipboard('')
loo_excel.workbooks.close()
loo_excel.Application.Quit
loo_excel.disconnectobject()
DESTROY loo_excel
return 1