如何用vfp提取excel表格中的数据 vfp导入XLS文件到DBF表中

经验直达:

  • vfp导入XLS文件到DBF表中
  • 如何用vfp提取excel表格中的数据
  • 求教VFP里导入语句和导出语句的写法

一、vfp导入XLS文件到DBF表中


可以实现,如:IMPORT FROM D:DB20050629.XLS TYPE XL5 SHEET ""

不过建议你先把xls存成dbf,因为xls版本很多,非要直接IMPORT,参考:

IMPORT 命令

请参阅

从外部文件导入数据,创建一个 Visual FoxPro 新表 。
语法

IMPORT FROM FileName
[TYPE] FW2 | MOD | PDOX | RPD
| WK1 | WK3 | WKS | WR1 | WRK | XLS
| XL5 [SHEET cSheetName]
[AS nCodePage]

参数

FileName

指定导入数据的文件名 。如果不包含文件扩展名,则使用默认扩展名 。

TYPE

关键字 TYPE 是可选的,但 IMPORT 命令中必须包含以下某种文件类型 。

文件类型 说明

FW2 包含 FW2 表示要导入由 Framework II 创建的 FW2 型文件 。
MOD 包含 MOD 表示要导入由 Microsoft Multiplan 4.0 创建的 MOD 型文件 。
PDOX 包含 PDOX 可导入 Paradox 文件,要导入 Borland 公司的 Paradox 3.5 和 4.0 中的数据库文件,可以包含 PDOX 。
RPD 包含 RPD 可导入由 RapidFile 创建的 RPD 型文件 。
WK1 | WK3 | WKS 包含 WK1 可以从 Lotus 1-2-3 的电子表格中导入数据 。电子表格中的列变为表中的字段,行变为表中的记录 。Lotus 1-2-3 2.X 创建的电子表格以 WK1 为扩展名;Lotus 1-2-3 3.X 创建的电子表格以 WK3 为扩展名;Lotus 1-2-3 1-A 创建的电子表格以 WKS 为扩展名 。
WR1 | WRK 包含 WR1 可由 Lotus Symphony 电子表格导入数据 。电子表格中的列变为表中的字段,行变为表中的记录 。Symphony 1.10 产生的电子表格以 WR1 为扩展名,Symphony 1.1 产生的电子表格以 .WRK 为扩展名 。
XLS 包含 XLS 可从 Microsoft Excel 2.0、3.0 和 4.0 的工作表中导入数据 。工作表中的列变为表中的字段,行变为表中的记录 。Microsoft Excel 创建的工作表文件以 .XLS 为扩展名 。
XL5 [SHEET cSheetName] 包含 XL5 可以从 Microsoft Excel 5.0 中导入数据 。工作表中的列变为表中的字段,行变为表中的记录 。Microsoft Excel 创建的工作表文件以 .XLS 为扩展名 。如果省略了 SHEET 子句,则 Visual FoxPro 从 SHEET1 中导入数据 。若要从某一指定工作表中导入数据,就应包含关键字 SHEET , 并用参数 cSheetName 来指定工作表的名称 。

AS nCodePage

指定导入文件的代码页 。Visual FoxPro 复制导入文件的内容,并且在复制同时,把数据自动转换成当前 Visual FoxPro 代码页 。
如果 Visual FoxPro 不支持指定的 nCodePage 的值,会产生错误信息 。也可以使用获取 nCodePage 的 GETCP( ) 函数来显示“代码页”对话框 , 并在对话框中指定一个代码页 。
如果省略了 AS nCodePage,而 Visual FoxPro 不能决定导入文件的代码页,Visual FoxPro 会复制导入文件的内容,而且在复制的同时把数据自动转换成当前的 Visual FoxPro 代码页;如果省略了 AS nCodePage 子句而 Visual FoxPro 可以决定导入文件的代码页,则 Visual FoxPro 会自动将导入文件中的数据从数据代码页转换成当前的 Visual FoxPro 代码页 。使用 CPCURRENT( ) 可以确定当前的 Visual FoxPro 代码页 。

如果 nCodePage 的值为 0,Visual FoxPro 假定导入文件的代码页即为当前的 Visual FoxPro 代码页 , 并且不进行代码页转换 。

说明
大部分软件包以自己可以使用的文件格式存储数据,Visual FoxPro 不能直接打开它们 。IMPORT 命令使用存储于 Visual FoxPro 不能直接读的文件格式中的数据创建新的 Visual FoxPro 表 。
新创建的表与导入数据的文件名同名,但以 .DBF 为扩展名 。


二、如何用vfp提取excel表格中的数据


excel导入到VFP中,使用import命令,如:
IMPORTFROM表1.xlsTYPExl8
将表1.xls导入为表1.dbf
---------------------------------------------------------------
用VFP导入
点击“文件”->导入->

类型选择:“MicrosoftExcel5.0和97(XLS)”
来源于选择:你要导入的Excel文件
工作表:默认为Sheet1 , 如是你要把Excel文件中Sheet2中内容导过来,就选择“Sheet2”
->最后点击导入即可 。

******************************************************************
*如果导入时出现提示:致命错误:异常代码=C0000005
*可以把Microsoft Excel 在保存时存为Microsoft Excel 5.0/95 格式或4.0格式 。这样就能导入了 。
******************************************************************

以上操作相当于如下命令操作:
IMPORTFROM你的表.xlsTYPEXL8SHEET"Sheet2"
有时需要把Excel表另存为“MicrosoftExcel5.0和97(XLS)” 格式后,再用以上命令进行导入 。

如果VFP表已存在,并且EXCEL表格式与VFP表格式一样 , 也可以用以下:
use VFP表名
APPEND FROM Excel表.xls TYPE xl5

----------------------------建议---------------------------

导出
copy to 1.xls type xl5

导入
import from 1.lxs type xl8

import from 1.lxs type xl5


如果VFP表已存在,并且EXCEL表格式与VFP表格式一样 , 也可以用以下:

USE 表.DBF
APPEND FROM GETFILE('XLS', '','', 0, '选择一个EXCEL文件') TYPE XL5 &&或XL8

如果VFP表不存在,导入时直接创建(名字自定义),且导入后存放的位置不定:

IMPORT FROM (GETFILE('XLS', '','', 0, '选择一个EXCEL表,然后另存为DBF表')) TYPE XL5&&或XL8
COPY TO PUTFILE('', '', 'DBF')
lcTmpTable=DBF()
CLOSE DATABASES
DELETE FILE (lcTmpTable)


三、求教VFP里导入语句和导出语句的写法


【如何用vfp提取excel表格中的数据 vfp导入XLS文件到DBF表中】导入:可以用append from <要导入的文件名(DBF)>
导出:COPY TO <要导入的文件名>,如果要导出EXCEL:
COPY TO <要导入的文件名> TYPE XL5
*代码:导出
Afile=GETFILE('DBF','打开')&&选择要导出的表
USE (Afile)&&打开表
TFILE=PUTFILE('SAVE TO:',' ','DBF') &&指定导出的文件
IF RIGHT(TFILE,3)='XLS'
COPY TO (TFILE) TYPE XL5
ELSE
COPY TO (TFILE)
ENDIF

相关经验推荐