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.
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
1 comentario
Podrías pasarme los ejemplos para revisarlos, son muy interesantes. por favor a mi correo [email protected] - Paulo Price
- Anónimoahora mismo
Respuesta de yorguin
1
1
yorguin, Me desempeño en plataforma de Visual FoxPro en versiones 6
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.
1 comentario
Muy bueno tu aporte. Soy de Perú y quisiera saber si aún tienes esos ejemplos de automatización de Excel con VFP para que me los envíes y pueda revisarlos a [email protected]. Muchas gracias. - Paulo Price
Podrías pasarme los ejemplos para revisarlos, son muy interesantes. por favor a mi correo [email protected] - Paulo Price