Power Builder - mover hojas excel

 
Vista:

mover hojas excel

Publicado por Made (6 intervenciones) el 14/04/2005 22:06:54
Hola, ya he intentado de mil maneras pero nada me resulta, alguien sabe como puedo copiar una hoja de un libro excel a otro en codigo de powerbuilder, tengo que hacerlo a través de un objeto OLE, pero la sintaxis para esto no se cual es y ya he intentado con varias pero no hay caso. Gracias
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:mover hojas excel

Publicado por Oscar (1178 intervenciones) el 15/04/2005 15:38:39
Ejemplo de copiar un rango del celdas de la Hoja 1 a la Hoja 3 en Excel:

OLEObject excel
Integer li_RetValue, li_rtn
Boolean lb_sheet_rtn
Long ll_cnt

excel = create OLEObject

li_rtn = excel.ConnectToNewObject("excel.application")
IF li_rtn <> 0 THEN
MessageBox('Excel error','No puede conectarse a Excel')
DESTROY excel
RETURN 0
END IF

excel.WorkBooks.Open( "c:\miarchivo.xls" )
excel.Application.Visible = TRUE

//Activar la Hoja 1 y seleccionar el rango
lb_sheet_rtn = excel.worksheets(1).Activate
// Copiar al clipboard
excel.Worksheets(1).Range("A1:E5000").Copy

//Activar la hoja 3 y pegar
lb_sheet_rtn = excel.worksheets(3).Activate
excel.Worksheets(3).Paste

//Resetear el Clipboard. Es decir, quitar la selección de la Hoja 1
excel.Worksheets(1).Range("A10000:A10000").Copy

//Otras operaciones posibles a utilizar:
//excel.Application.Save
//excel.Application.Quit

excel.DisConnectObject()
DESTROY excel
//-------------------Fin-------------------
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:mover hojas excel

Publicado por made (6 intervenciones) el 15/04/2005 16:56:27
al final del dia me resulto el copiado de celdas de un archivo excel a otras celdas de otro archivo excel, para esto creo dos objetos OLE diferente, pero al ejecutar la sentencia excel.ActiveSheet.Paste me envia un mensaje de error de formato, no he encontrado la forma de capturarlo y que no lo muestre, tú sabes como evitarlo????????
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:mover hojas excel

Publicado por Oscar (1178 intervenciones) el 15/04/2005 18:13:06
Por si acaso, trabajo con Win XP; PB 9 y Office 2003, y al copiar las celdas de la hoha1 del archivo 1 a la hoja 3 del archivo 2, no arroja ningún error. Todo sale bien.

Efectivamente se trabaja con dos OLE Diferente. Resumido sería lo siguiente:

excel = create OLEObject

li_rtn = excel.ConnectToNewObject("excel.application")
excel.WorkBooks.Open( "c:\miarchivo1.xls" )
excel.Application.Visible = TRUE

//Activar la Hoja 1 y copiar
lb_sheet_rtn = excel.worksheets(1).Activate
excel.Worksheets(1).Range("A1:E5000").Copy
excel.DisConnectObject()
DESTROY excel
//-------------------Fin-------------------

//Ahora se crea la conexión 2:
excel2 = create OLEObject

li_rtn2 = excel2.ConnectToNewObject("excel.application")

excel2.WorkBooks.Open( "c:\miarchivo2.xls" )
excel2.Application.Visible = TRUE

//Activar la Hoja 3 y pegar
lb_sheet_rtn2 = excel2.worksheets(3).Activate
excel2.Worksheets(3).Paste

excel2.DisConnectObject()
DESTROY excel2
//-------------------Fin-------------------
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:mover hojas excel

Publicado por Paul Avalos (1 intervención) el 24/08/2012 20:59:15
Esta es otra solucion, lo bacan de esto es que duplica la hoja...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
OleObject lole_OLE, lole_Sheet, lole_Sheet2
lole_OLE = CREATE OleObject
lole_OLE.ConnectToNewObject( 'excel.application' )
lole_OLE.Application.Workbooks.Add( 'c:\archivo.xlsx')
lole_sheet = lole_OLE.Application.ActiveWorkbook.WorkSheets[1] //Hoja Original
lole_Sheet2 = lole_OLE.Application.ActiveWorkbook.WorkSheets[2] //Hoja (Posicion) donde se          
                                                                                                                           //insertara la hoja
lole_Sheet.select
lole_Sheet.copy(lole_sheet2)
 
lole_OLE.ActiveWorkbook.SaveAs("c:\archivo1.xlsx")
lole_OLE.Application.Visible = TRUE
lole_OLE.DisconnectObject()
DESTROY lole_OLE


Saludos Cofrades...
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