Formatear numeros desde vfox 6 en excel

Quiero formatear una columna de numeros en excel desde visual foxpro, como haria eso. Gracias

1 respuesta

Respuesta
1
Puedes ver en esta secuencia de ordenes, y veras como abrir, formatear y cerrar un archivo de Excel desde Vfox.
LOCAL cErrores, lExcel
cErrores = ON("ERROR")
ON ERROR lExcel = .F.
oExcel = GetObject(,"excel.application")
ON ERROR &cErrores
IF !varTYPE(oExcel)="O" oExcel = CREATEOBJECT("Excel.Application")
ELSE
FOR EACH x IN oExcel.Workbooks
NameFileTMP = x.Name
IF NameFileTMP = Name_file+".XLS"
x. CLOSE
ENDIF
ENDFOR
ENDIF
oExcel.VISIBLE = .F.
oExcel.Workbooks.ADD
Lnumhojas= oExcel.sheets.count()
lnTotalhojas = 3 - Lnumhojas
For i = 1 to lnTotalhojas
oWorksheet1 = oExcel.Worksheets[(Lnumhojas-1)+i]
oExcel.Worksheets.Add(,oWorksheet1,1,)
Endfor
oExcel.Sheets(1).select
oExcel.ActiveSheet.name = "MIHOJA"
*-----------------------*
* Encabezados *
*-----------------------*
WITH oExcel
.RANGE("B2:F2").SELECT
.RANGE("B2:F2").FONT.NAME="Arial"
.RANGE("B2:F2").FONT.BOLD=.T.
.RANGE("B2:F2").FONT.SIZE=12
.RANGE("B2:F2").HorizontalAlignment = 3
.RANGE("B2:F2").VerticalAlignment = 3
.RANGE("B2").SELECT
.ACTIVECELL.VALUE="ESTILO"
.RANGE("C2").SELECT
.ACTIVECELL.VALUE="CORTE"
.RANGE("D2").SELECT
.ACTIVECELL.VALUE="COLOR"
.RANGE("E2").SELECT
.ACTIVECELL.VALUE="TALLA"
.RANGE("F2").SELECT
.ACTIVECELL.VALUE="DOCENAS"
*-----------------------*
* Bordes de Encabezados *
*-----------------------*
.RANGE("B2:F2").Borders(1).weight=2 && Izquierdo
.RANGE("B2:F2").Borders(1).Colorindex=32
.RANGE("B2:F2").Borders(2).weight=2 && Derecho
.RANGE("B2:F2").Borders(2).Colorindex=32
.RANGE("B2:F2").Borders(3).weight=2 && Arriba
.RANGE("B2:F2").Borders(3).Colorindex=32
.RANGE("B2:F2").Borders(4).weight=2 && Abajo
.RANGE("B2:F2").Borders(4).Colorindex=32 && Azul
.RANGE("B2:F2").HorizontalAlignment = 3
.RANGE("B2:F2").VerticalAlignment = 3
ENDWITH
*-----------------------*
* Encabezados *
*-----------------------*
*-------*
* Datos *
*-------*
SELE MIBASE
GO TOP
nColumn = 1
nRows = 2
TotPie = 0
STORE 0 TO Var1_p, Var2_p
DO WHILE !EOF()
nRows = nRows + 1
oExcel.Cells(nRows,nColumn+1) = MIBASE.Estilo
oExcel.Cells(nRows,nColumn+2) = MIBASE.Corte
oExcel.Cells(nRows,nColumn+3) = MIBASE.ColOR
oExcel.Cells(nRows,nColumn+4) = ALLTRIM(MIBASE.Talla)
oExcel.Cells(nRows,nColumn+5) = "'"+ALLTRIM(MIBASE.Docenas)
Var1_p = Var1_p + INT(Piezas/12)
Var2_p = Var2_p + MOD(Piezas,12)
SKIP
ENDDO
chris = Var1_p + INT(Var2_p/12)
doc = INT(chris)
neto = ALLTRIM(STR(MOD(Var2_p,12)))
Valor = "'"+ALLTRIM(STR(doc))+"/"+neto
nRows = nRows + 1
oExcel.Cells(nRows,nColumn+5) = Valor
SELECT MIBASE
USE
*-------*
* Datos *
*-------*
nRowsF = ALLTRIM(STR(nRows))
*--------------*
* Presentacion *
*--------------*
WITH oExcel
.Columns("A").ColumnWidth = 2
.Range("E3:E"+ALLTRIM(STR(VAL(nRowsF)+2))).HorizontalAlignment = 3
.Range("E3:F"+ALLTRIM(STR(VAL(nRowsF)+2))).HorizontalAlignment = 4
.Columns("G").NumberFormat = '#,##0_);[Red](#,##0)'
.Columns("B:F").EntireColumn.AutoFit
ENDWITH
nRowsF = ALLTRIM(STR(nRows-1))
WITH oExcel
*- Lineas IZQUIERDA-DERECHA-ARRIBA-ABAJO "Parte-Medida-Linea-Marca"
.RANGE("B2:F"+nRowsF).Borders(1).weight=2 && Izquierdo
.RANGE("B2:F"+nRowsF).Borders(2).weight=2 && Derecho
.RANGE("B2:F"+nRowsF).Borders(3).weight=2 && Arriba
.RANGE("B2:F"+nRowsF).Borders(4).weight=2 && Abajo
*- Lineas IZQUIERDA-DERECHA-ARRIBA-ABAJO TITULO GRIS
.RANGE("B2:F2").Borders(1).weight=2 && Izquierdo
.RANGE("B2:F2").Borders(2).weight=2 && Derecho
.RANGE("B2:F2").Borders(3).weight=2 && Arriba
.RANGE("B2:F2").Borders(4).weight=2 && Abajo
.Range("B2:F2").Interior.Color = RGB(220,220,220) && RGB(192,192,192) && Light Gray
**** Letra y Tamaño
.RANGE("B2:F"+ALLTRIM(STR(nRows+4))).Font.Name="Courier New"
.RANGE("B2:F"+ALLTRIM(STR(nRows+4))).Font.Size=12
.Columns("B:F").EntireColumn.AutoFit
****************************************************************************************
nRowsT = ALLTRIM(STR(nRows))
.RANGE("F"+NRowsT+":F"+nRowsT).Borders(1).weight=2 && Izquierdo
.RANGE("F"+NRowsT+":F"+nRowsT).Borders(2).weight=2 && Derecho
.RANGE("F"+NRowsT+":F"+nRowsT).Borders(3).weight=2 && Arriba
.RANGE("F"+NRowsT+":F"+nRowsT).Borders(4).weight=2 && Abajo
.Range("F"+NRowsT+":F"+nRowsT).Interior.Color = RGB(220,220,220)
**** Letra y Tamaño
.RANGE("F"+NRowsT+":F"+nRowsT).Font.Name="Courier New"
.RANGE("F"+NRowsT+":F"+nRowsT).Font.Size=12
.RANGE("F"+NRowsT+":F"+nRowsT).FONT.BOLD=.T.
.Columns("B:G").EntireColumn.AutoFit
ENDWITH
*--------------*
* Presentacion *
*--------------*
*---------*
* Titulos *
*---------*
with oExcel
.RANGE("B1").SELECT
.ACTIVECELL.VALUE="PRODUCCION DIARIA DEL " + ALLTRIM(STR(DIA)) + "/" + ;
RIGHT("0"+ALLTRIM(STR(Mes)),2) + "/" + ALLTRIM(STR(AÑO))
.RANGE("B1").FONT.NAME="ARIAL"
.RANGE("B1").FONT.BOLD=.T.
.RANGE("B1").FONT.SIZE=12
.RANGE("B1").HorizontalAlignment = 3
.RANGE("B1").VerticalAlignment = 3
.RANGE("B1:F1").Merge
ENDWITH
*---------*
* Titulos *
*---------*
WAIT CLEAR
*----------------------------*
* Grabar la pagina de excel *
*----------------------------*
lnNameF = SYS(5)+SYS(2003)+"\"+Name_file+".XLS"
IF FILE(lnNameF)
ERASE (lnNameF) && si el archivo existe lo borro
ENDIF
oExcel.ActiveWorkbook.SaveAs(lnNameF) &&DONDE GUANDO EL CARCHIVO DE EXCEL
oExcel.Quit
*!* Borro la SESION DE EXCEL
RELEASE oExcel
*----------------------------*
* Grabar la pagina de excel *
*----------------------------*
=MESSAGEBOX("Archivo Generado como : " + Name_file + ".XLS",0+64,"ChrisJAM 2003")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas