Exportacion a excel

Tengo un problema con exportar un reporte a excel, quiero que contenga un logo y controlar el ancho de cada columna, colores y demás, ¿cua les la mejor forma?, ¿Tienes algo que haga eso? Y que una vez generado el archivo excel me salga una pantalla donde me pida un mail al cual quiero enviar este archivo excel.

2 respuestas

Respuesta
1
Bien para pasar eun reportea a excel, se debe conocer un poco los comando que relaciona a vfp con excel, vfp permite abrir excel, y manejar casi todas las propiedads de excel desde VFP(negrilla, ancho de columna, etc.) son muchas cositas que se debe aprendeder y concer de ello ... pero bien te envío un pequeño prgorama ... lo estudias lo modificas y veras y así como ello se puede hacer muchísimo más ...
Buen día !
IF USED('AUXCAJ2')
SELECT AUXCAJ2
USE
ENDIF
CREATE VIEW AUXCAJ2 AS SELECT SPACE(10) AS NIT, SPACE(48) AS NOMBRE, SALDFG, SALDFP FROM AUXCAJA WHERE NIT='99999999999999'
SELECT 0
USE AUXCAJ2
APPEND FROM C:\TMPS\INF12.TXT SDF
GO TOP
DELETE FROM AUXCAJ2 WHERE SALDFG=0 AND SALDFP=0
GO TOP
**-- Declarando variable de manejo de errores
LOCAL IcErrorAnt
WAIT WINDOWS 'Un momento por favor abriendo Excel' NOWAIT
**-- Obtener el objeto hoja de excel (Abrir el Excel)
oHojaXL=GETOBJECT('PRUEBA','Excel.Sheet')
**-- VErificar si excel esta instalado
IF VARTYPE(oHojaXl)<>'O'
=MESSAGEBOX('No se detecta EXCEL en su PC',0+16+0,'Verificar Archivo Excel')
RETURN
ENDIF
**-- Crear el objeto Aplicacion Excel
oExcelApp=OHojaXl.Application
oExcelApp.Visible=.T. && Visible EXcel
**-- Añadir un libro de excel
oExcelApp.WorkBooks.Add()
**-- Activa la Hoja de Excel
oHojaXl=oExcelApp.ActiveSheet
**-- Llevar titulos a Excel
mfila=1
oHojaXL.Cells(mFila,2)='SALDO FINAL DE CAJAS HASTA '+DTOC(WHASTA)
mfila=mfila+2
**-- Llevar subtitulos a Excel
oHojaXL.Columns('A:E').EntireColumn.AutoFit
oHojaXL.Cells(mFila,1)='Codigo'
oHojaXL.Cells(mFila,2)='Nombre Cliente'
oHojaXL.Cells(mFila,3)='Grandes'
oHojaXL.Cells(mFila,4)='Pequeñas'
mFila=mFila+2
**-- Llenar los registros en excel
*SELECT * FROM g_client ORDER BY NOMBRE INTO CURSOR W1
SELECT AUXCAJ2
GO TOP
STORE 0 TO MtotalG,Mtotalp,Windica
DO WHILE .NOT.EOF()
SCATTER MEMVAR
* IF ((m.saldig-m.entrag)+m.salidg)>0 OR ((m.saldip-m.entrap)+m.salidp)>0
IF VAL(M.nit)=100
* IF Windica=1
* SKIP
* LOOP
* ELSE
* m.nombre='PLATAFORMA - BOGOTA'
* m.nit='005000'
* ENDIF
* Windica=1
ENDIF
oHojaXL.Cells(mfila,1)=ALLTR(m.nit)
IF VAL(m.nit)=100
m.nombre='.'+SUBSTR(m.Nombre,1,50)
ENDIF
IF VAL(m.nit)=1000
m.nombre='..'+SUBSTR(m.Nombre,1,50)
ENDIF
oHojaXL.Cells(mfila,2)=SUBSTR(m.Nombre,1,50)
oHojaXL.Cells(mfila,3)=m.saldFg
oHojaXL.Cells(mfila,4)=m.saldFp
MtotalG=MtotalG+m.saldFg
MtotalP=MtotalP+m.saldFp
mfila=mfila+1
* ENDIF
SKIP
ENDDO
mFila=mFila+1
oHojaXL.Cells(mfila,2)='TOTAL GENERAL'
oHojaXL.Cells(mfila,3)=MtotalG
oHojaXL.Cells(mfila,4)=MtotalP
SELECT AUXCAJ2
USE
**-- dar formato a la columna C
oExcelApp.Columns('C:C').select
oExcelApp.selection.NumberFormat='#,##0'
oExcelApp.Columns('D:D').select
oExcelApp.selection.NumberFormat='#,##0'
** indicar tamaño fijo de fijo para la columna A
*oExcelApp.Columns('A:A').ColumnWidth=10.71
*oExcelApp.Columns('B:B').ColumnWidth=35.00
**--Indicar tamaño incremental con base a los registros de cada columna
*oHojaXL.Columns('A:B').EntireColumn.AutoFit
**-- Indicar Fuente
oExcelApp.Range(oHojaXL.Cells(1,2),oHojaXL.Cells(1,2)).select
oExcelApp.Selection.Font.Name='Arial'
oExcelApp.Selection.Font.size=14
**-- dar color al pie de pagina
oExcelApp.Range(oHojaXL.Cells(mfila,1),oHojaXL.Cells(mfila,4)).select
oExcelApp.Selection.Font.Bold=.T.
oExcelapp.Selection.Interior.colorindex=35 && Verde Marino
**-- dar color a los titulos
oExcelApp.Range(oHojaXL.Cells(1,1),oHojaXL.Cells(1,4)).select
oExcelApp.Selection.Font.Bold=.T.
oExcelapp.Selection.Interior.colorindex=35 && Verde Marino
**-- dar color a los subtitulos
oExcelApp.Range(oHojaXL.Cells(3,1),oHojaXL.Cells(3,4)).select
oExcelApp.Selection.Font.Bold=.T.
oExcelapp.Selection.Interior.colorindex=35 && Verde Marino
IF USED('AUXCAJ2')
SELECT AUXCAJ2
USE
Endif
Respuesta
1
Claro, desde fox puedes realizar todas las tareas posibles en excel, por favor enviame to cuenta de correo o vinculame a tu messenger de yahoo con mi cuenta [email protected] y te envío los ejemplos que tengo y además te puedo explicar como sacar el mejor partido a Office de VFP, he desarrollado herramientas que han necesitado mucha integralidad con Excel y tengo varios ejemplos como el del logo o cambiar tamaños, adicionar tipos de letras, formato a las celdas y líneas y Colores.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas