Red de conocimiento informático - Material del sitio web - En VFP, ¿cómo convertir una tabla DBF en una tabla EXCEL XSL?

En VFP, ¿cómo convertir una tabla DBF en una tabla EXCEL XSL?

Simple, use Copiar a nombre de tabla EXCEL.xls escriba xl5. Tenga en cuenta que al ejecutar este comando, la tabla DBF a convertir debe estar en el espacio de trabajo actual. Puede seleccionar el espacio de trabajo a través de Seleccionar.

También proporcionamos algunos programas e información relacionada para exportar DBF a XSL mediante programación. Esperamos que le sea útil:

VFP a XLS&& DbfToExcel.PRG

&& Recuerde instalar Excel, de lo contrario no funcionará

CERRAR TODAS LAS BASES DE DATOS

ESTABLECER FECHA YMD

ESTABLECER SIGLO EN

cDbfFile = GETFILE("dbf")

IF EMPTY(cDbfFile)

RETURN

ENDIF

USE (cDbfFile) ALIAS FoxTable IN 0

IF NOT USED("FoxTable")

=MESSAGEBOX("¡Error al abrir la tabla, el programa abortará!", 16, "Error")

RETURN

ENDIF

cExcelFile = PUTFILE("&N):",JUSTSTEM(cDbfFile)+".xls","xls")

SI VACÍO (cExcelFile)

CERRAR TODAS LAS BASES DE DATOS

VOLVER

ENDIF

SELECCIONAR FoxTable

oExcelSheet = GETOBJECT( " ","Excel.Sheet") && Generar objeto de Excel

IF NOT TYPE("oExcelSheet") = "O"

=MESSAGEBOX("Error al crear el objeto de Excel, el programa terminará! ", 16, "Error")

RETURN

ENDIF

oExcelApp = oExcelSheet.Application

oExcelApp.Workbooks. Agregar( )

oExcelApp.ActiveWindow.WindowState=2

oSheet = oExcelApp.ActiveSheet

nFldCount = AFIELDS(aFldList, "FoxTable")

FOR i = 1 TO nFldCount

oSheet.Cells(1,i).Value = aFldListdColumn

FOR i=1 TO oGrid.COLUMNCOUNT

FOR ii =1 TO oGrid.COLUMNCOUNT

nOrder=oGrid.COLUMNS(ii).COLUMNORDER

IF nOrder=i

dColumn=oGrid.COLUMNS(ii ). header1.CAPTION

dColumn=oGrid.COLUMNS(ii).CONTROLSOURCE

EXIT

ENDIF

ENDFOR

ENDFOR

****Crear archivo de salida*****

cCopy=""

FOR i=1 TO ALEN(dColumn, 1)

cCopy=cCopy+dColumna+","

SIGUIENTE

cCopy=LEFT(cCopy,LEN(cCopy)-1)<

/p>

cCopy="COPY TO "+'"'+FILE_NAME+'"'+" TYPE XL5 FIELDS "+cCopy

&cCopy

&&Crea una tabla de Excel y Escribir encabezado

oexl=CREATEOBJECT("excel.APPLICATION")

CON oexl

.workbooks.OPEN(FILE_NAME)

. VISIBLE=.T.

.cells.Select

.Selection.FONT.Size=10

ENDWITH

Seleccione ALIAS( cRec )

=AFIELDS(cField,cRec)

****Agregue título chino a la primera línea*****

FOR i=1 TO ALEN(dColumn,1)

oexl.cells(1,i).VALUE=dColumn

****Procesamiento de datos para cada columna, divididos en caracteres y fechas numéricas** ** *

DO CASE

CASE TYPE(dColumn)="N"

***Encuentra los decimales de un valor****

FOR ii=1 TO ALEN(cField,1)

IF UPPER(dColumn)=UPPER(cRec)+"."+cField

nWS=cField

SALIR

ENDIF

SIGUIENTE

oexl.COLUMNS(retuabc(i)+":"+retuabc(i)). NumberFormatLocal = "# ,##0."+REPLICATE("0",nWs)+"_);[Rojo](#,##0."+REPLICATE("0",nWs)+")"

CASE TYPE(dColumn)="D" OR TYPE(dColumn)="T"

oexl.COLUMNS(retuabc(i)+":"+retuabc(i)).NumberFormatLocal = "yyyy/ mm/dd"

ENDCASE

NEXT

****Línea de tabla****

oexl. RANGE("A1 :"+retuabc(ALEN(dColumn,1))+ALLTRIM(Str(RECCOUNT()+1))).Select

oexl.Selection.BorderS(5).LineStyle = - 4142

oexl.Selection.BorderS(6).LineStyle = -4142

CON oexl.Selection.BorderS(7)

.LineStyl

e =1

.Peso = 2

.ColorIndex = -4105

TERMINAR CON

CON oexl.Selection.BorderS(8)

.LineStyle =1

.Weight = 2

.ColorIndex =-4105

ENDWITH

CON oexl.Selection.BorderS(9)

.LineStyle =1

.Peso = 2

.ColorIndex = -4105

ENDWITH

CON oexl.Selection.BorderS(10)

.LineStyle =1

.Weight = 2

.ColorIndex = -4105

TERMINAR CON

CON oexl.Selection.BorderS(11)

.LineStyle =1

.Peso = 1

.ColorIndex = -4105

TERMINAR CON

CON oexl.Selection.BorderS(12)

.LineStyle =1

.Weight = 1

.ColorIndex = -4105

ENDWITH

***La primera línea se muestra en gris y en negrita****

CON oexl.RANGE("A1:"+retuabc(ALEN(dColumn,1))+"1")

.HorizontalAlignment=3

.VerticalAlignment = 2< / p>

.WrapText = .T.

.FONT.bold=.T.

.Interior.ColorIndex = 40

ENDWITH

oexl.Rows("1:1").Select

oexl.Selection.INSERT

oexl.Selection.INSERT

oexl. .INSERT

&&Buscar

CON oexl.RANGE("A1:"+retuabc(ALEN(dColumn,1))+"1")

. fusionar

.VALUE=cHeader

.FONT.Size=14

.HorizontalAlignment=3

.VerticalAlignment=2

.FONT.bold=.T.

ENDWITH

&&Agregar hora del informe

CON oexl.RANGE("A2:d2")

.merge

.VALUE="Hora del informe:"+TTOC(DATETIME())

ENDWITH

&&Agregar número de tabla Una columna

oexl.cells.Select

oexl.Selection.COLUMNS.AUTOFIT()

LIBERAR oexl

Regresar .T