Power Builder - Importacion de Excel

 
Vista:

Importacion de Excel

Publicado por Alfonso (44 intervenciones) el 31/05/2004 19:35:57
Estoy haciendo una importacion desde excel y todo bien, al destruir el objeto me deja abierto el archivo de excel y me dice que si quiero guardar los cambios ?

Como elimino este mensaje y solo cierro el archivo.

Desde ya gracias por los comentarios
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Importacion de Excel

Publicado por Oscar (1178 intervenciones) el 31/05/2004 22:24:43
Cuando se hace una IMPORTACIÓN de excel a DW, no es necesario abrir el archivo de excel (por lo menos mediante el método que se explicó en el foro); en consecuencia no hay necesidad de guardar ni cerrar nada.

Pero si haces una EXPORTACIÓN de DW a Excel, primero es necesario guardar los cambios antes de cerrar el archivo. Es decir, las funciones a usar son:

//Hacer Excel visible o invisible
ole_object.Application.Visible = FALSE
.....
// Primero guardar el archivo abierto
ole_object.Application.Activeworkbook.Save()

//Luego cerrar
ole_object.Application.workbooks.close()

// Finalmente nos desconectamos
ole_object.DisConnectObject()
Destroy ole_object

Nota: Por la contradicción anotada, no estoy tan seguro si estás IMPORTANDO o EXPORTANDO: En todo caso, si no resuelves tu problema, espero aclares o mejor aún, puedes mostrar tu script.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importacion de Excel

Publicado por Alfonso (44 intervenciones) el 31/05/2004 22:58:59
Gracias Oscar.

Estoy usando el siguiente script:

excel = create OLEObject

li_rtn = excel.ConnectToNewObject("excel.application")
IF li_rtn <> 0 THEN
MessageBox('Excel error','can not run Excel Program')
DESTROY excel
RETURN 0
END IF

excel.WorkBooks.Open( "c:\mysheet.xls" )
excel.Application.Visible = false
excel.windowstate = 2 // 1 : Normal, 2 : Minimize, 3 : Maximize

lb_sheet_rtn = excel.worksheets(1).Activate

ls_ClipBoard = Clipboard() //Store current clipboard Data

// En este punto ya esta abierto el archivo excel
excel.Worksheets(1).Range("A1:E5000").Copy // copy to clipboard - Take enough Range. .. Or use the UsedRage property. If data ha header row, use correct statring range.. (B1:... )
ll_cnt = dw_1.importclipboard()

Clipboard(ls_ClipBoard) //Restore clipboard

IF ll_cnt <<= 1 THEN
Messagebox("Inf", "Could not find .")
END IF
// Al llegar aqui me marca que si deseo guardar cambios, no entiendo
pareciera que el clipboard se tomara como un cambio. Podes decirme
que sucede

excel.Application.Quit
excel.DisConnectObject()
DESTROY excel

Desde ya gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importacion de Excel

Publicado por Oscar (1178 intervenciones) el 01/06/2004 05:38:55
Hola Litz:
Probé tu script con PB 9, Win ME y Office XP, funciona bien!. No se presenta en ningún momento el problema que mencionas.

En todo caso, en la línea:
ls_ClipBoard = Clipboard() //Store current clipboard Data

Puedes colocar apóstrofes, dentro los paréntesis. Es decir:
ls_ClipBoard = Clipboard('')

Si aún así, no resulta, prueba a utilizar otro script para importar Excel a DW, que se halla en:

http://www.lawebdelprogramador.com/news/mostrar_new.php?id=73&texto=Power+Builder&n1=162894&n2=1&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0

Por supuesto, a ese script puedes hacerle las siguientes modificaciones:

* Quitar el GetFileOpenName, y la ruta de tu archivo lo colocas directamente en:
loo_excel.workbooks.open( "C:\miarchivo.xls" )

* Además, por si acaso, la línea:
ll_rc = dw_1.ImportClipBoard ( 2 )
Significa, que estás copiando desde la segunda fila de excel (para no incluir los encabezados de tu tabla; que supuestamente se hallan en la primera fila).

Espero te resulte. Caso contrario; comentá como te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar