FoxPro/Visual FoxPro - salvar excel

 
Vista:

salvar excel

Publicado por herrera b (29 intervenciones) el 22/02/2008 21:29:18
hola a todos gracias desde ya, les cuento tengo un programa que me genera un archivo excel con multiples hojas desde un cursor, agrego imagen de logo, subtotales ningun problema y dejo el excel en pantalla como libro1. mi consulta es como hago para salvar ese excel que tengo en pantalla en un directorio especifico, para luego poder adjuntarlo a un mail y despacharlo en forma automatica.
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:salvar excel - Ya encontre la solucion

Publicado por henry roman (31 intervenciones) el 25/02/2008 18:08:15
Saludos compañeros, adjunto la respuesta, ya que el compañero la encontro, pero no la compartio, sirvanse...

Dentro del archivo, puede ser un prg, que se encuentra el codigo en que generamos el archivo de excel, en este caso no pongo dicho codigo, al final ponemos:

*/// Salvamos el archivo como htm
loExcel.APPLICATION.activeworkbook.SAVE
xlfile = "C:Aviso" && Aqui podemos dar una ruta especifica.
loExcel.Application.WorkBooks(1).Saveas(xlfile,45,,,.F.) && Parametro 45 = MHT
loExcel.APPLICATION.activeworkbook.CLOSE( .F. )
loExcel.APPLICATION.QUIT
RELEASE loExcel

OTR EJEMPLO COMO EXCEL

*/// Salvamos el archivo Excel
loExcel.APPLICATION.activeworkbook.SAVE
xlfile = SYS(5)+SYS(2003)+"ArchivosReporte.xls" && Otra forma de dar ruta
loexcel.ActiveWorkbook.SaveAs(xlfile,1,,,.F.)
loExcel.APPLICATION.activeworkbook.CLOSE( .F. )
loExcel.APPLICATION.QUIT

*Hacemos visible el libro de Excel
loExcel.Visible = .T.

RELEASE loExcel

RETURN

Espero les ayude en algo...
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:salvar excel - Ya encontre la solucion

Publicado por herrera b (29 intervenciones) el 25/02/2008 18:49:46
Disculmen los compañeros adjunto la solucion a mi consulta, es mas pongo un excel completo

*-EXCEL------------------------------------------------------------------------------
oexcel=createobject('excel.application')
oexcel.application.visible=.f.
oexcel.application.StandardFontSize=8
oexcel.application.StandardFont='Arial'
oexcel.application.workbooks.add()

Select _encabezado
Go top
Do while !Eof()

Select * from informe into cursor x order by archivo,cliente where archivo=_encabezado.archivo

* Wait 'Generando Archivo Excel' window nowait noclear

xreg=Reccount('x')
xcon=0

Select titulos_empresa
Go top
Scan
If At(Upper(Alltrim(titulos_empresa.texto1)),Upper(_encabezado.archivo),1)>0
If At(Upper(Alltrim(titulos_empresa.texto2)),Upper(_encabezado.archivo),1)>0
xtitulohoja=Alltrim(titulos_empresa.glosa1)+' '+Alltrim(titulos_empresa.glosasi)
Else
xtitulohoja=Alltrim(titulos_empresa.glosa1)+' '+Alltrim(titulos_empresa.glosano)
EndIf
EndIf
EndScan

oexcel.application.sheets.add
oexcel.application.sheets(1).name=xtitulohoja

oexcel.application.rows(1).font.size=10
oexcel.application.rows(1).font.bold=.t.

oexcel.application.rows(1).font.bold=.t.
oexcel.application.Range("a1").Select

If File(data_drive+"imageneslogo_banner.jpg")
lcImagen =data_drive+"imageneslogo_banner.jpg"
oexcel.ActiveSheet.pictures.Insert(lcImagen).select
EndIf

I=10
oexcel.application.cells(I,01).value=xtitulohoja
oexcel.application.cells(I,03).value='Generado el: '+Ttoc(dateTime())

I=I+2
oexcel.application.rows(I).font.bold=.t.
oexcel.application.rows(I).font.size=12
oexcel.application.cells(I,01).value='CUENTAS CORRIENTES' && AL MES DE FEBRERO DE 2008

oexcel.application.columns(01).numberformat='@'
oexcel.application.columns(02).numberformat='dd-mm-yyyy'
oexcel.application.columns(03).numberformat='dd-mm-yyyy'
oexcel.application.columns(04).numberformat='#,##;[Red](#,##);0'

I=I+2
oexcel.application.rows(I).font.bold=.t.
oExcel.application.columns(01).columnwidth=52.17
oexcel.application.cells(I,01).value='CLIENTES'

oExcel.application.columns(02).columnwidth=17
oexcel.application.cells(I,02).value='Primera Compra'

oExcel.application.columns(03).columnwidth=17
oexcel.application.cells(I,03).value='Ultima Compra'

oExcel.application.columns(04).columnwidth=17
oexcel.application.cells(I,04).value='Total Deuda'

oExcel.application.Range(oexcel.application.cells(I,2),oexcel.application.cells(I,4)).borders(3).weight=3 && arriba
oExcel.application.Range(oexcel.application.cells(I,1),oexcel.application.cells(I,4)).borders(4).weight=3 && abajo
oExcel.application.Range(oexcel.application.cells(I,2),oexcel.application.cells(I,4)).borders(1).weight=3 && izquierda
oExcel.application.Range(oexcel.application.cells(I,2),oexcel.application.cells(I,4)).borders(2).weight=3 && derecha
oexcel.application.range(oexcel.application.cells(I,2),oexcel.application.cells(I,4)).Interior.ColorIndex=15

Select x
I=I+1
Do While !Eof()
xcon=xcon+1
Wait 'Generando Archivo Excel Registro '+Alltrim(Str(xcon))+' de '+Alltrim(Str(xreg)) window nowait noclear

oExcel.application.Range(oexcel.application.cells(I,1),oexcel.application.cells(I,4)).borders(1).weight=3 && izq
oExcel.application.Range(oexcel.application.cells(I,1),oexcel.application.cells(I,4)).borders(2).weight=3 && der

oexcel.application.cells(I,01).value=x.cliente

If !Empty(x.primera)
oexcel.application.cells(I,02).value=x.primera
EndIf

If !Empty(x.ultima)
oexcel.application.cells(I,03).value=x.ultima
EndIf

oexcel.application.cells(I,04).value=x.total

I=I+1

Select x
Skip
Enddo
oExcel.application.Range(oexcel.application.cells(I,1),oexcel.application.cells(I,4)).borders(3).weight=3 &&arriba

I=I+2
oExcel.application.Range(oexcel.application.cells(I,4),oexcel.application.cells(I+1,4)).borders(3).weight=3 && arriba
oExcel.application.Range(oexcel.application.cells(I,4),oexcel.application.cells(I+1,4)).borders(4).weight=3 && abajo
oExcel.application.Range(oexcel.application.cells(I,4),oexcel.application.cells(I+1,4)).borders(1).weight=3 && izquierda
oExcel.application.Range(oexcel.application.cells(I,4),oexcel.application.cells(I+1,4)).borders(2).weight=3 && derecha
oexcel.application.range(oexcel.application.cells(I,4),oexcel.application.cells(I+1,4)).Interior.ColorIndex=20

Sum(total) to xtotalgral for archivo=_encabezado.archivo
oexcel.application.cells(I,4).font.bold=.t.
oexcel.application.cells(I,4).numberformat='#,##;[Red](#,##);0'
oexcel.application.cells(I,4).value=xtotalgral

I=I+1

Sum(total) to xtotalgral for archivo=_encabezado.archivo
oexcel.application.cells(I,3).value='Total Deuda Clientes'
oexcel.application.cells(I,4).font.bold=.t.
oexcel.application.cells(I,4).numberformat='#,##;[Red](#,##);0'

xlinea_empresa=0

Select linea_empresa
Go top
Scan
xsublinea_empresa=0

Select ctascorrientes1
Set Order To auxiliar
Seek linea_empresa.auxiliar
Do while !Eof()
If ctascorrientes1.auxiliar<>linea_empresa.auxiliar
Skip
Loop
EndIf

If ctascorrientes1.archivo<>_encabezado.archivo
Skip
Loop
EndIf

xsublinea_empresa=ctascorrientes1.stotal

Select ctascorrientes1
Skip
EndDo
xlinea_empresa=xlinea_empresa+xsublinea_empresa

EndScan

oexcel.application.cells(I,4).value=xtotalgral-xlinea_empresa

oexcel.application.Range("A15").Select
oexcel.application.ActiveWindow.FreezePanes =.t.

Select _encabezado
Skip
EndDo

oexcel.application.visible=.t.
Wait Clear

oexcel.application.ActiveWorkbook.SaveAs("C:INFORME")&& Guarda el libro.
oexcel.application.QUIT && Cierra Excel

*-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