Tengo este código para pasar datos de un ArrayBrowse a Excel,...
/* Conectamos con Excel y lo mostramos. */
oExcel := TOleAuto():New( "Excel.Application" )
/* Creamos una hoja nueva. */
oExcel:WorkBooks():Add()
oExcel:ActiveSheet:Range("A1"):Value := "CODI"
oExcel:ActiveSheet:Range("B1"):Value := "NOM"
oExcel:ActiveSheet:Range("C1"):Value := "DEURE"
oExcel:ActiveSheet:Range("D1"):Value := "HAVER"
oExcel:ActiveSheet:Range("E1"):Value := "SALDO"
oExcel:ActiveSheet:Range("F1"):Value := "ANTERIOR"
For n:=1 to Len( ::oBrowse1:aArrayData )
oExcel:ActiveSheet:Range( "A" + LTrim( Str( n+1 ) ) ):Value :=
::oBrowse1:aArrayData[n,1]
oExcel:ActiveSheet:Range( "B" + LTrim( Str( n+1 ) ) ):Value :=
::oBrowse1:aArrayData[n,2]
oExcel:ActiveSheet:Range( "C" + LTrim( Str( n+1 ) ) ):Value :=
::oBrowse1:aArrayData[n,3]
oExcel:ActiveSheet:Range( "D" + LTrim( Str( n+1 ) ) ):Value :=
::oBrowse1:aArrayData[n,4]
oExcel:ActiveSheet:Range( "E" + LTrim( Str( n+1 ) ) ):Value :=
::oBrowse1:aArrayData[n,5]
oExcel:ActiveSheet:Range( "F" + LTrim( Str( n+1 ) ) ):Value :=
::oBrowse1:aArrayData[n,6]
nTotalD += xNumCtoN( ::oBrowse1:aArrayData[n,3] )
nTotalH += xNumCtoN( ::oBrowse1:aArrayData[n,4] )
Next
oExcel:ActiveSheet:Range( "C" + LTrim( Str( n+1 ) ) ):Value :=
TransForm( nTotalD, "@E 999,999,999.99" )
oExcel:ActiveSheet:Range( "D" + LTrim( Str( n+1 ) ) ):Value :=
TransForm( nTotalH, "@E 999,999,999.99" )
oExcel:ActiveSheet:Range( "E" + LTrim( Str( n+1 ) ) ):Value :=
TransForm( Val(Str(nTotalD-nTotalH,15,2)), "@E 999,999,999.99" )
/* Salvamos la hoja. */
If File( oFile:cFullFileName )
FErase( oFile:cFullFileName )
EndIf
oExcel:ActiveWorkBook:SaveAs( oFile:cFileName )
/* Cerramos Excel y destruímos el objeto OLE. */
oExcel:Quit()
ShellExecute( 0, "open", oFile:cFullFileName, 0, 0, SW_SHOWNORMAL )
Funciona correctamente, ahora bien,...
desearía cambiar de fuente en alguna celda en concreto o en una columna, y
eso no hallo como hacerlo.
También no se como establecer el ancho de una columna.
Utilizando TFileXls si que se hacerlo, pero siempre es bueno tener
alternativas.
¿Alguna ayuda???
Gracias.
Un Saludo,
Xevi.
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Alguna ayuda para avanzar con TOleAuto para Excel
Alguna ayuda para avanzar con TOleAuto para Excel
Hay que leer mas...
Gracias a releer el foro... en un mensaje de Cristian y respondido por
Jose.F., luego de buscar en Excel, ademas de aprender, he dado con lo que
buscaba y más...
Establecer la letra en un rango...
:Range("A1:F1"):Font:Bold := .T.
:Range("A1:F1"):Font:Size := 12
:Range("A1:F1"):Font:Name := "Arial"
:Range("A1:F1"):Font:Italic := .T.
Establecer el ancho de una columna
:Columns("B"):ColumnWidth := 45
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> escribió en el mensaje de noticias
news:472ed7a2$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
> Tengo este código para pasar datos de un ArrayBrowse a Excel,...
>
> /* Conectamos con Excel y lo mostramos. */
> oExcel := TOleAuto():New( "Excel.Application" )
>
> /* Creamos una hoja nueva. */
> oExcel:WorkBooks():Add()
>
> oExcel:ActiveSheet:Range("A1"):Value := "CODI"
> oExcel:ActiveSheet:Range("B1"):Value := "NOM"
> oExcel:ActiveSheet:Range("C1"):Value := "DEURE"
> oExcel:ActiveSheet:Range("D1"):Value := "HAVER"
> oExcel:ActiveSheet:Range("E1"):Value := "SALDO"
> oExcel:ActiveSheet:Range("F1"):Value := "ANTERIOR"
> For n:=1 to Len( ::oBrowse1:aArrayData )
> oExcel:ActiveSheet:Range( "A" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,1]
> oExcel:ActiveSheet:Range( "B" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,2]
> oExcel:ActiveSheet:Range( "C" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,3]
> oExcel:ActiveSheet:Range( "D" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,4]
> oExcel:ActiveSheet:Range( "E" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,5]
> oExcel:ActiveSheet:Range( "F" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,6]
> nTotalD += xNumCtoN( ::oBrowse1:aArrayData[n,3] )
> nTotalH += xNumCtoN( ::oBrowse1:aArrayData[n,4] )
> Next
> oExcel:ActiveSheet:Range( "C" + LTrim( Str( n+1 ) ) ):Value :=
> TransForm( nTotalD, "@E 999,999,999.99" )
> oExcel:ActiveSheet:Range( "D" + LTrim( Str( n+1 ) ) ):Value :=
> TransForm( nTotalH, "@E 999,999,999.99" )
> oExcel:ActiveSheet:Range( "E" + LTrim( Str( n+1 ) ) ):Value :=
> TransForm( Val(Str(nTotalD-nTotalH,15,2)), "@E 999,999,999.99" )
>
> /* Salvamos la hoja. */
> If File( oFile:cFullFileName )
> FErase( oFile:cFullFileName )
> EndIf
> oExcel:ActiveWorkBook:SaveAs( oFile:cFileName )
>
> /* Cerramos Excel y destruímos el objeto OLE. */
> oExcel:Quit()
>
> ShellExecute( 0, "open", oFile:cFullFileName, 0, 0, SW_SHOWNORMAL )
>
> Funciona correctamente, ahora bien,...
> desearía cambiar de fuente en alguna celda en concreto o en una columna, y
> eso no hallo como hacerlo.
> También no se como establecer el ancho de una columna.
>
> Utilizando TFileXls si que se hacerlo, pero siempre es bueno tener
> alternativas.
> ¿Alguna ayuda???
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
Gracias a releer el foro... en un mensaje de Cristian y respondido por
Jose.F., luego de buscar en Excel, ademas de aprender, he dado con lo que
buscaba y más...
Establecer la letra en un rango...
:Range("A1:F1"):Font:Bold := .T.
:Range("A1:F1"):Font:Size := 12
:Range("A1:F1"):Font:Name := "Arial"
:Range("A1:F1"):Font:Italic := .T.
Establecer el ancho de una columna
:Columns("B"):ColumnWidth := 45
Un Saludo,
Xevi.
"Xevi" <xevicomas@gmail.com> escribió en el mensaje de noticias
news:472ed7a2$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>
> Tengo este código para pasar datos de un ArrayBrowse a Excel,...
>
> /* Conectamos con Excel y lo mostramos. */
> oExcel := TOleAuto():New( "Excel.Application" )
>
> /* Creamos una hoja nueva. */
> oExcel:WorkBooks():Add()
>
> oExcel:ActiveSheet:Range("A1"):Value := "CODI"
> oExcel:ActiveSheet:Range("B1"):Value := "NOM"
> oExcel:ActiveSheet:Range("C1"):Value := "DEURE"
> oExcel:ActiveSheet:Range("D1"):Value := "HAVER"
> oExcel:ActiveSheet:Range("E1"):Value := "SALDO"
> oExcel:ActiveSheet:Range("F1"):Value := "ANTERIOR"
> For n:=1 to Len( ::oBrowse1:aArrayData )
> oExcel:ActiveSheet:Range( "A" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,1]
> oExcel:ActiveSheet:Range( "B" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,2]
> oExcel:ActiveSheet:Range( "C" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,3]
> oExcel:ActiveSheet:Range( "D" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,4]
> oExcel:ActiveSheet:Range( "E" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,5]
> oExcel:ActiveSheet:Range( "F" + LTrim( Str( n+1 ) ) ):Value :=
> ::oBrowse1:aArrayData[n,6]
> nTotalD += xNumCtoN( ::oBrowse1:aArrayData[n,3] )
> nTotalH += xNumCtoN( ::oBrowse1:aArrayData[n,4] )
> Next
> oExcel:ActiveSheet:Range( "C" + LTrim( Str( n+1 ) ) ):Value :=
> TransForm( nTotalD, "@E 999,999,999.99" )
> oExcel:ActiveSheet:Range( "D" + LTrim( Str( n+1 ) ) ):Value :=
> TransForm( nTotalH, "@E 999,999,999.99" )
> oExcel:ActiveSheet:Range( "E" + LTrim( Str( n+1 ) ) ):Value :=
> TransForm( Val(Str(nTotalD-nTotalH,15,2)), "@E 999,999,999.99" )
>
> /* Salvamos la hoja. */
> If File( oFile:cFullFileName )
> FErase( oFile:cFullFileName )
> EndIf
> oExcel:ActiveWorkBook:SaveAs( oFile:cFileName )
>
> /* Cerramos Excel y destruímos el objeto OLE. */
> oExcel:Quit()
>
> ShellExecute( 0, "open", oFile:cFullFileName, 0, 0, SW_SHOWNORMAL )
>
> Funciona correctamente, ahora bien,...
> desearía cambiar de fuente en alguna celda en concreto o en una columna, y
> eso no hallo como hacerlo.
> También no se como establecer el ancho de una columna.
>
> Utilizando TFileXls si que se hacerlo, pero siempre es bueno tener
> alternativas.
> ¿Alguna ayuda???
>
> Gracias.
>
> Un Saludo,
> Xevi.
>
- ignacio
- Site Admin
- Mensajes: 9447
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Alguna ayuda para avanzar con TOleAuto para Excel
Xevi,
Mira el código fuente del metodo TReport:ToExcel().
Saludos,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:472eed31$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hay que leer mas...
>
> Gracias a releer el foro... en un mensaje de Cristian y respondido por
> Jose.F., luego de buscar en Excel, ademas de aprender, he dado con lo que
> buscaba y más...
>
> Establecer la letra en un rango...
> :Range("A1:F1"):Font:Bold := .T.
> :Range("A1:F1"):Font:Size := 12
> :Range("A1:F1"):Font:Name := "Arial"
> :Range("A1:F1"):Font:Italic := .T.
>
> Establecer el ancho de una columna
> :Columns("B"):ColumnWidth := 45
>
> Un Saludo,
> Xevi.
>
>
> "Xevi" <xevicomas@gmail.com> escribió en el mensaje de noticias
> news:472ed7a2$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>
>> Tengo este código para pasar datos de un ArrayBrowse a Excel,...
>>
>> /* Conectamos con Excel y lo mostramos. */
>> oExcel := TOleAuto():New( "Excel.Application" )
>>
>> /* Creamos una hoja nueva. */
>> oExcel:WorkBooks():Add()
>>
>> oExcel:ActiveSheet:Range("A1"):Value := "CODI"
>> oExcel:ActiveSheet:Range("B1"):Value := "NOM"
>> oExcel:ActiveSheet:Range("C1"):Value := "DEURE"
>> oExcel:ActiveSheet:Range("D1"):Value := "HAVER"
>> oExcel:ActiveSheet:Range("E1"):Value := "SALDO"
>> oExcel:ActiveSheet:Range("F1"):Value := "ANTERIOR"
>> For n:=1 to Len( ::oBrowse1:aArrayData )
>> oExcel:ActiveSheet:Range( "A" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,1]
>> oExcel:ActiveSheet:Range( "B" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,2]
>> oExcel:ActiveSheet:Range( "C" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,3]
>> oExcel:ActiveSheet:Range( "D" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,4]
>> oExcel:ActiveSheet:Range( "E" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,5]
>> oExcel:ActiveSheet:Range( "F" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,6]
>> nTotalD += xNumCtoN( ::oBrowse1:aArrayData[n,3] )
>> nTotalH += xNumCtoN( ::oBrowse1:aArrayData[n,4] )
>> Next
>> oExcel:ActiveSheet:Range( "C" + LTrim( Str( n+1 ) ) ):Value :=
>> TransForm( nTotalD, "@E 999,999,999.99" )
>> oExcel:ActiveSheet:Range( "D" + LTrim( Str( n+1 ) ) ):Value :=
>> TransForm( nTotalH, "@E 999,999,999.99" )
>> oExcel:ActiveSheet:Range( "E" + LTrim( Str( n+1 ) ) ):Value :=
>> TransForm( Val(Str(nTotalD-nTotalH,15,2)), "@E 999,999,999.99" )
>>
>> /* Salvamos la hoja. */
>> If File( oFile:cFullFileName )
>> FErase( oFile:cFullFileName )
>> EndIf
>> oExcel:ActiveWorkBook:SaveAs( oFile:cFileName )
>>
>> /* Cerramos Excel y destruímos el objeto OLE. */
>> oExcel:Quit()
>>
>> ShellExecute( 0, "open", oFile:cFullFileName, 0, 0, SW_SHOWNORMAL )
>>
>> Funciona correctamente, ahora bien,...
>> desearía cambiar de fuente en alguna celda en concreto o en una columna,
>> y eso no hallo como hacerlo.
>> También no se como establecer el ancho de una columna.
>>
>> Utilizando TFileXls si que se hacerlo, pero siempre es bueno tener
>> alternativas.
>> ¿Alguna ayuda???
>>
>> Gracias.
>>
>> Un Saludo,
>> Xevi.
>>
>
Mira el código fuente del metodo TReport:ToExcel().
Saludos,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Xevi" <xevicomas@gmail.com> escribió en el mensaje
news:472eed31$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hay que leer mas...
>
> Gracias a releer el foro... en un mensaje de Cristian y respondido por
> Jose.F., luego de buscar en Excel, ademas de aprender, he dado con lo que
> buscaba y más...
>
> Establecer la letra en un rango...
> :Range("A1:F1"):Font:Bold := .T.
> :Range("A1:F1"):Font:Size := 12
> :Range("A1:F1"):Font:Name := "Arial"
> :Range("A1:F1"):Font:Italic := .T.
>
> Establecer el ancho de una columna
> :Columns("B"):ColumnWidth := 45
>
> Un Saludo,
> Xevi.
>
>
> "Xevi" <xevicomas@gmail.com> escribió en el mensaje de noticias
> news:472ed7a2$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>
>> Tengo este código para pasar datos de un ArrayBrowse a Excel,...
>>
>> /* Conectamos con Excel y lo mostramos. */
>> oExcel := TOleAuto():New( "Excel.Application" )
>>
>> /* Creamos una hoja nueva. */
>> oExcel:WorkBooks():Add()
>>
>> oExcel:ActiveSheet:Range("A1"):Value := "CODI"
>> oExcel:ActiveSheet:Range("B1"):Value := "NOM"
>> oExcel:ActiveSheet:Range("C1"):Value := "DEURE"
>> oExcel:ActiveSheet:Range("D1"):Value := "HAVER"
>> oExcel:ActiveSheet:Range("E1"):Value := "SALDO"
>> oExcel:ActiveSheet:Range("F1"):Value := "ANTERIOR"
>> For n:=1 to Len( ::oBrowse1:aArrayData )
>> oExcel:ActiveSheet:Range( "A" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,1]
>> oExcel:ActiveSheet:Range( "B" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,2]
>> oExcel:ActiveSheet:Range( "C" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,3]
>> oExcel:ActiveSheet:Range( "D" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,4]
>> oExcel:ActiveSheet:Range( "E" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,5]
>> oExcel:ActiveSheet:Range( "F" + LTrim( Str( n+1 ) ) ):Value :=
>> ::oBrowse1:aArrayData[n,6]
>> nTotalD += xNumCtoN( ::oBrowse1:aArrayData[n,3] )
>> nTotalH += xNumCtoN( ::oBrowse1:aArrayData[n,4] )
>> Next
>> oExcel:ActiveSheet:Range( "C" + LTrim( Str( n+1 ) ) ):Value :=
>> TransForm( nTotalD, "@E 999,999,999.99" )
>> oExcel:ActiveSheet:Range( "D" + LTrim( Str( n+1 ) ) ):Value :=
>> TransForm( nTotalH, "@E 999,999,999.99" )
>> oExcel:ActiveSheet:Range( "E" + LTrim( Str( n+1 ) ) ):Value :=
>> TransForm( Val(Str(nTotalD-nTotalH,15,2)), "@E 999,999,999.99" )
>>
>> /* Salvamos la hoja. */
>> If File( oFile:cFullFileName )
>> FErase( oFile:cFullFileName )
>> EndIf
>> oExcel:ActiveWorkBook:SaveAs( oFile:cFileName )
>>
>> /* Cerramos Excel y destruímos el objeto OLE. */
>> oExcel:Quit()
>>
>> ShellExecute( 0, "open", oFile:cFullFileName, 0, 0, SW_SHOWNORMAL )
>>
>> Funciona correctamente, ahora bien,...
>> desearía cambiar de fuente en alguna celda en concreto o en una columna,
>> y eso no hallo como hacerlo.
>> También no se como establecer el ancho de una columna.
>>
>> Utilizando TFileXls si que se hacerlo, pero siempre es bueno tener
>> alternativas.
>> ¿Alguna ayuda???
>>
>> Gracias.
>>
>> Un Saludo,
>> Xevi.
>>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Re: Alguna ayuda para avanzar con TOleAuto para Excel
Podrían apoyarme con la equivalencia a:
Get( "ActiveWorkBook" )
?
Gracias de antemano.
Get( "ActiveWorkBook" )
?
Gracias de antemano.
- ignacio
- Site Admin
- Mensajes: 9447
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Alguna ayuda para avanzar con TOleAuto para Excel
Hola,
Pruebe con oExcel:ActiveWorkBook
https://msdn.microsoft.com/es-es/librar ... 21871.aspx
Saludos
Pruebe con oExcel:ActiveWorkBook
https://msdn.microsoft.com/es-es/librar ... 21871.aspx
Saludos
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com