Urgente! Exportar de foxpro 2.5b a excel

Buenos días, tengo una base de datos en foxpro 2.5b quiero pasarla a excel pero NO como un COPY TO TYPE XLS, si no desde programación abrir el excel y poder diseñar la hoja en cuanto a tipo, tamaño de letra, colocarle líneas, etc.
Desde Vfp6 lo he hecho pero esto no me funciona para foxpro 2.5b
En foxpro 2.5b llego hasta la parte donde ejecuto el excel con el comando RUN C:\XXXX\EXCEL.EXE pero no se como decirle que me maquille los datos.
Agradezco si alguien tiene un ejemplo, mi correo es [email protected]
Gracias,
PD. Es para foxpro 2.5b y no para vfp

1 respuesta

Respuesta
1
estudiate este codigo ...
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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas