怎样把excel电子表导入到visual foxpro 数据库中?

怎样把excel电子表导入到visual foxpro 数据库中?,第1张

excel表格导入vfp没有更好的办法,但是可以通过读取excel来实现。
以下是vfp直接读取EXCEL文件的示例:
M_File=GETFILE('xls','订单文件')
IF M_File=""
=MESSAGEBOX("请选择待导入的收订单文件!",0+48,"提示")
RETURN
ELSE
IF JUSTEXT(M_FILE)#"XLS" &&获得文件扩展名
=MESSAGEBOX("您选择的不是EXCEL文档!",0+48,"提示")
RETURN
ENDIF
ENDIF
USE 图书订单表
ZAP
myexcel=createobject('excelapplication') &&创建一个对象
myexcelvisible=f&&不可见
bookexcel=myexcelworkbooksopen(M_File) &&打开指定文件
o_SheetName=myexcelapplicationActiveSheetName &&获取当前激活工作表的名称
UsedRange =bookexcelworksheets(o_SheetName)UsedRange &&返回工作表中可使用的区域,UsedRange表的属性
o_rows=UsedRangerowscount &&汇总行
o_cols=UsedRangecolumnscount &&汇总列
IF o_rows<=1
=MESSAGEBOX("待导入数据行数太少,请检查!",0+16,"提示")
ELSE
FOR i=2 TO o_rows
m1=myexcelcells(i,1)value &&书号
m2=myexcelcells(i,2)value &&书名
m3=myexcelcells(i,3)value &&出版社
m4=myexcelcells(i,4)value &&作者
m5=myexcelcells(i,5)value &&定价
m6=myexcelcells(i,6)value &&数量
APPEND BLANK
REPLACE 书号 WITH m1,书名 WITH m2,出版社 WITH m3,作者 WITH m4,定价 WITH m5,数量 WITH m6
ENDFOR
ENDIF
myexcelworkbooksclose &&关闭工作区
myexcelquit &&关闭excel
brow

如何 foxpro 导入dbf
APPEND FROM 文件名txt TYPE SDF
APPEND FROM 文件名txt DELIMITER WITH BLANK &&TXT文件以空格键分隔
APPEND FROM 文件名txt DELIMITER WITH TAB &&TXT文件以TAB键分隔
或者用导入的办法

create table mytable (公告号 c(6),公告日 c(11),申请人 c(20)) APPEND FROM mytxttxt DELIMITED WITH space(1) 从一个文件中读入记录,追加到当前表的尾部。 APPEND FROM FileName | [FIELDS FieldList] [FOR lExpression] [[TYPE] [DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB | WITH CHARACTER Delimiter] | DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK | WK1 | WK3 | WKS | WR1 | WRK | CSV | XLS | XL5 [SHEET cSheetName] | XL8 [SHEET cSheetName]]] [AS nCodePage] 参数 FileName 指定从哪个文件中读入记录。如果给出的文件名不包含扩展名,则将文件默认为 Visual FoxPro 表,扩展名为 DBF。如果文件是 Visual FoxPro 表,无论SET DELETED 为何种设置,表中标记为删除的记录也将添加到当前表中。 显示打开对话框,从中可以选择从哪个表中读入记录。 FIELDS FieldList 指定添加哪些字段数据。 FOR lExpression 为当前选定表中每一条 lExpression 为“真”(T) 的记录追加新记录,直至达到当前选定表的末尾。如果省略 FOR,则整个源文件记录都追加到当前表中。 TYPE 指定源文件类型。如果指定的源文件类型不是 Visual FoxPro 表,则必须指定文件类型,但不必包括 TYPE 关键字。您可以从各种类型文件(包括分隔 ASCII 文本文件)中读入信息添加到表中,在这些文件中可以指定字段分隔符。 如果要追加的源文件扩展名不是默认的扩展名,源文件名必须包括文件扩展名。例如,Microsoft Excel 工作表通常具有 XLS 扩展名。如果要追加的 Microsoft Excel 工作表扩展名不是 XLS,一定要指定扩展名。 注意 如果要追加的记录来自工作表,工作表中的数据必须以主行序而非主列序存储,这样才能使追加的工作表数据符合表结构。 DELIMITED 指定源文件为分隔数据文件。分隔数据文件是 ASCII 文本文件,文件中每条记录以回车和换行符结尾。各字段内容默认地由逗号分开,字符字段值还需要用引号括上。例如: "Smith",9999999,"TELEPHONE" 所有分隔数据文件的扩展名默认为 TXT 数据的格式。 如果日期格式正确,可以从分隔文件中导入日期数据,日期的默认格式为 mm/dd/yy。您还可以选择加入世纪信息。Visual FoxPro 导入的数据(如 12/25/95)不包含世纪信息,世纪信息的默认值为 20 世纪。日期分隔符可以为任意非数值字符,但不能使用分隔文件中字段的分隔符。 如果其他一些日期格式与 SET DATE 中可以使用的格式相匹配,Visual FoxPro 也可以导入这些格式的日期数据。若要导入非默认格式的日期,应在使用 APPEND FROM 前先发出 SET DATE 修改数据格式设置。要想检查日期格式是否能成功地导入,可使用CTOD()函数。如果 CTOD()函数接收此日期值,则日期数据就能正确地导入。 DELIMITED WITH Delimiter 字符字段由 Delimiter 标识,而非引号。 DELIMITED WITH BLANK 由空格符 (BLANK) 分隔字段,而不是用逗号分隔字段。 DELIMITED WITH TAB 各字段由制表符 (TAB) 来分隔,而非逗号。 DELIMITED WITH CHARACTER Delimiter 字段之间由给定的 Delimiter 分隔。如果 Delimite 是分号,应用引号括起来,因为引号在 Visual FoxPro 中有特殊的意义:一个命令分在多行中书写时,用分号

你可以先将
Visual
Foxpro
数据库的表文件,导出到文本文件或
Excel
文件,再进入
Microsoft
Access,在“文件|获取外部数据|导入”中选你在
Visual
Foxpro
中导出的文件即可!

在PB 中建立新表

打开新建的表

单击数据库画板中的 数据 *** 作(Data manipulation) 按钮

选择菜单 Rows Import

从 文件类型 下拉框中选择dbaseII & III( dbf)

选择被导入文件所在的目录及文件名

单击 打开 按钮

系统将打开指定的文件 将该文件中的所有记录导入新建的表中

但系统不提供直接将导入数据保存在本数据库(表)中 如果要将导入的记录保存为SQL Anywhere 环境下的数据库(表)中 可以先将导入数据行以SQL格式保存在 sql 类型文件中 在利用SQL语句将这些数据行插入新表中 步骤如下

按上面所列的步骤导入数据库(DBF)文件中的数据

选择菜单 File Save Row As …

在 存为类型 列表框中选择 SQL

选择保存路径 输入保存文件名 单击保存

关闭 Data manipulation 窗口 回到数据库画板

单击 DB Administration (数据库管理器)

选择菜单 File Open

确信文件类型为 SQL ( sql)

选择第 步中所保存的文件 单击 打开 按钮

删除文件起始部分的第一条SQL语句 CREATE TABLE

单击 Execute (执行)按钮 系统将把原数据库中的所有行插入到新表中

需要注意的是 新建的表在字段设置上必须与原DBF文件中的字段保持一致 即 新表中的字段数必须等于或大于原DBF文件中的字段数

新表中的字段顺序要与原文件中的字段顺序一样 即使新表中字段数更多 但新的字段必须放在最后

新表与旧文件中字段名可以不一样

新表中的数据类型必须与旧表中的数据类型兼容 字符 字符 数值 数字 数字 字符……

数据格式相一致 如两个文件中的日期格式必须一致

新表中字段长度必须能容纳旧数据库文件中的对应字段中的数据 如 旧数据库某一字段宽度为C 但库中所有记录在该字段的实际最长为 那么 新表中的字段宽度至少应为C

如果你愿意 也可以将原FoxPro中的数据库先转换到TXT格式文件 再将TXT格式的文件导入SQL Anywhere数据库(表)中 不过TXT文件中一条记录独占一行 各字段间必须用Tab键(符)隔开 其导入方法与DBF文件中数据的导入方法类似

以上两种办法均可实现在Power Builder下访问FoxPro数据库 但两种方法之间有些不同之处

从系统需求来看 第一种方式使用ODBC直接访问DBF文件 只要Power Builder基本系统即可 不需要安装数据库管理系统(DBMS) 而第二种方式必须安装SQL Anywhere系统

从运行效率来看 第一种方式速度要慢一些 后一种方式稍快 笔者在应用程序中比较了两种方式在速度上的差异 将FoxPro系统中的一个有 余条记录的数据库 用第一种方式联接 在数据窗口控制中显示(Retieve)记录 需要 秒钟左右 后来又用第二种方式 在SQL Anywhere 中新建一个表 将这 条记录导入表中 联接 显示记录 需要时间为 秒 对另一个拥有 万余条记录的FoxPro数据库直接使用ODBC 联接 显示的时间为 秒钟

使用Power Builder 的主要优势体现在建立客户/服务器模式的系统上 对于一般的单机系统 规模较小的系统 可能大多数人不会想到它 但如果你觉得FoxPro太老土 Visual FoxPro又太难学的的话 不妨试试Power Builder

       编辑推荐

       ASP NET开发培训视频教程

       Microsoft NET框架程序设计视频教程

lishixinzhi/Article/program/PB/201311/24620

如果你的execel格式和vf数据库格式一致, 可以用如下命令:
append from excel文件名称 type xl5 fields 字段列表 for 导入条件
append from命令详细说明:
从一个文件中读入记录,追加到当前表的尾部。
APPEND FROM FileName | [FIELDS FieldList] [FOR lExpression]
[[TYPE] [DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB
| WITH CHARACTER Delimiter] | DIF | FW2 | MOD | PDOX | RPD |
SDF | SYLK | WK1 | WK3 | WKS | WR1 | WRK | CSV | XLS | XL5
[SHEET cSheetName] | XL8 [SHEET cSheetName]]] [AS nCodePage]
参数
FileName
指定从中读入记录的文件名。如果给出的文件名中不包含扩展名,则默认为 Visual FoxPro 表,扩展名为 dbf 。如果是从 Visual
FoxPro 表中读入记录, 即使当前 SET DELETED 设置为 OFF
,表中标记为删除的记录也将添加到当前表中。
 
显示打开对话框,从中可以选择从哪个表中读入记录。
FIELDS
FieldList
指定为哪些字段添加数据。
注意:
不能从文本文件( 例如 CSV 和 SDF 文件) 向备注字段中添加。
FOR
lExpression
为当前选定表中每一条 lExpression 为真(T)
的记录追加新记录。直至达到当前选定表的末尾。如果省略 FOR ,则整个源文件记录都追加到当前表中。
TYPE
指定源文件类型。如果指定的源文件类型不是 Visual FoxPro 表,则必须指定文件类型,但不必包括 TYPE
关键字。您可以从各种类型文件中读入信息添加到表中,包括 ASCII
文本文件,在这些文件中可以指定字段分隔符。如果要追加的源文件扩展名不是默认的扩展名,源文件名必须包括文件扩展名。例如,Microsoft
Excel 工作表通常具有 xls 扩展名。如果要追加的Microsoft Excel 工作表扩展名不是 xls
,一定要指定扩展名。
注意:
When 如果要追加的记录来自工作表,工作表中的数据必须以主行序( row-major order)
而非主列序(column-major order) 存储。这样才能使追加的工作表数据符合表结构。
DELIMITED
指定源文件为分隔数据文件。 分割文件是 ASCII
文本文件,文件中每条记录以回车和换行符结尾。字段内容默认地由逗号分开
(
不能在逗号之前或之后包含多余的空格)
,字符字段值还需要用引号括上。例如:
复制代码
"Smith",9999999,"TELEPHONE"
所有分隔数据文件的扩展名默认为
txt 数据的格式。如果日期格式正确,可以从分隔文件中导入日期数据。日期的默认格式为 mm/dd/yy
。您还可以选择加入世纪信息。Visual FoxPro 导入的数据,如 12/25/95
,不包含世纪信息,世纪信息的默认值为20世纪。日期分隔符可以为任意非数值字符,但不能使用分隔文件中字段的分隔符。如果其他一些日期格式与 SET
DATE 中可以使用的格式相匹配,应在使用 APPEND FROM 前发出 SET DATE
修改数据格式设置。要想检查日期格式是否能成功地导入,可使用 CTOD( ) 函数。如果 CTOD( )
函数接收此日期值,则日期数据就能正确地导入。
DELIMITED WITH
Delimiter
指定字符型字段由此字符标识,而不是引号。
DELIMITED WITH
BLANK
指定由空格符(spaces) 分隔字段,而不是逗号。
DELIMITED WITH TAB
指定由制表符
(TAB)
分隔字段,而不是逗号。
DELIMITED WITH CHARACTER
Delimiter
指定字段之间由给定的 Delimiter 分隔。如果 Delimiter 是分号
( 分号 Visual FoxPro 用于命令行的延续), 应用引号括起来。您也可以指定 BLANK 和
TAB 作为 Delimiter 关键字。WITH Delimiter 子句可与 WITH
CHARACTER 子句结合使用。例如,下面的命令从文本文件中添加记录,字符字段用下划线( _ ) 标识,而字段之间用星号()
分隔:
复制代码
APPEND FROM mytxttxt DELIMITED WITH _ WITH CHARACTER
DIF
选用 DIF 可从 VisiCalc dif ( 数据交换格式) 文件中导入数据。矢量 (
列) 对应当前选定表的字段,元组( 行) 对应表的记录。DIF 文件的默认扩展名为
dif 。
FW2
选用 FW2 可从由 Framework II 创建的文件中导入数据。FW2 文件的默认扩展名为
fw2 。
MOD
选用 MOD 可从 Microsoft Multiplan 401 版本的文件中导入数据。MOD
文件由 Microsoft Multiplan 401 版本创建,默认扩展名为 mod 。
PDOX
选用 PDOX 可从 Paradox 35 或 40
版本的数据库文件中导入数据。Paradox 文件名的默认扩展名为 db 。
RPD
选用 RPD 可从 RapidFile 12 版本创建的文件中导入数据。RapidFile
文件名的默认扩展名为 rpd 。
SDF
选用 SDF 可从系统数据格式(System Data Format) 文件中导入数据。SDF
文件是一种 ASCII 文本文件,记录有固定长度,并且以回车和换行符结尾。字段之间不分隔开。SDF文件的默认扩展名为 txt
。从 SDF 文件到 Visual FoxPro 表时,有效的日期转换要求数据保存为 YYYYMMDD
格式。如果日期保存为不明确的格式,您应该映射日期列到一个适当宽度的字符列,这样您可以检查转换后的值来改正转换程序,以创建正确格式的日期数据。
SYLK
选用 SYLK 可从 SYLK (Symbolic Link) 交换格式文件中导入数据。SYLK
文件用于 Microsoft MultiPlan 中。SYLK 文件中的列对应 Visual FoxPro
表的字段,行对应表的记录。SYLK 文件没有扩展名。
WK1
选用 WK1 可从 Lotus 1-2-3 2x
版本的电子表格中导入数据。电子表格的每列对应表的一个字段;每行对应表的一条记录。
Lotus 1-2-3 2x
版本创建的电子表格扩展名为
WK1 。
WK3
选用 WK3 可从 Lotus 1-2-3
的电子表格中导入数据。电子表格的每列对应表的一个字段;每行对应表一条记录。Lotus 1-2-3 3x 版本创建的电子表格的扩展名为
wk3 。
WKS
选用 WKS 可从 Lotus 1-2-3 1-A
版本的电子表格中导入数据。电子表格的每列对应表的一个字段;每行对应表的一条记录。Lotus 1-2-3 1-A
版本创建的电子表格的扩展名为 wks 。
WR1
选用 WR1 可从 Lotus Symphony 11 或 12
版本电子表格中导入数据。电子表格的每列对应表的一个字段;每行对应表的一条记录。Symphony 11 或 12
版本创建的电子表格的扩展名为 wr1 。
WRK
选用 WRK 可从 Lotus Symphony 10
版本电子表格中导入数据。电子表格的每列对应表的一个字段;每行对应表的一条记录。 Symphony 10
版本创建的电子表格的扩展名为 wrk 。
CSV
选用 CSV 可从一个各值之间用逗号分隔的文件中导入数据。一个 CSV
文件的第一行是字段名;当导入文件时,会忽略这个字段名。
XLS
选用 XLS 可从 Microsoft Excel
工作表中导入数据。工作表的每列对应表的一个字段,每行对应表的一条记录。由 Microsoft Excel 创建的工作表扩展名为
xls 。
XL5
选用 XL5 可从 Microsoft Excel 50
版本中导入数据。工作表的每列对应表的一个字段;每行对应表的一条记录。由 Microsoft Excel 创建的工作表文件扩展名为
xls 。如果省略 SHEET 子句,将从 Sheet1 中导入数据。为了导入指定工作表(sheet)
中的数据,需要包含 SHEET 关键字,并通过 cSheetName 指定工作表名。
XL8
选用 XL8 可从 Microsoft Excel 97
中导入数据。工作表的每列对应表的一个字段;每行对应表的一条记录。由 Microsoft Excel 创建的工作表文件扩展名为
xls 。如果省略 SHEET 子句,将从 Sheet1 中导入数据。为了导入指定工作表(sheet)
中的数据,需要包含 SHEET 关键字,并通过 cSheetName 指定工作表的名称。

先导入SQL使用SQL导功能应该吧能导DBF文件导TXT文本文件再用EXCEL2003打再导DBF文件都实现
另外FOXPRO *** 作数据库库包括10表先别导10表FOXPRO建立数据库再10表添加数据库即


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10331168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存