| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8132 人关注过本帖
标题:将Excel导入数据表
只看楼主 加入收藏
zhaocqdx
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2007-11-17
收藏
 问题点数:0 回复次数:12 
将Excel导入数据表
求一段将excel数据导入VFP表里面的代码,谢谢!
搜索更多相关主题的帖子: Excel 数据 VFP excel 代码 
2008-01-13 18:36
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
这是帮助文件中的内容:
从一个文件中读入记录,追加到当前表的尾部。

 
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 mytxt.txt DELIMITED WITH _ WITH CHARACTER *
 

DIF
选用 DIF 可从 VisiCalc .dif ( 数据交换格式) 文件中导入数据。矢量 ( 列) 对应当前选定表的字段,元组( 行) 对应表的记录。DIF 文件的默认扩展名为 .dif 。
FW2
选用 FW2 可从由 Framework II 创建的文件中导入数据。FW2 文件的默认扩展名为 .fw2 。
MOD
选用 MOD 可从 Microsoft Multiplan  4.01 版本的文件中导入数据。MOD 文件由 Microsoft Multiplan 4.01 版本创建,默认扩展名为 .mod 。
PDOX
选用 PDOX 可从 Paradox 3.5 或 4.0 版本的数据库文件中导入数据。Paradox 文件名的默认扩展名为 .db 。
RPD
选用 RPD 可从 RapidFile 1.2 版本创建的文件中导入数据。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 2.x 版本的电子表格中导入数据。电子表格的每列对应表的一个字段;每行对应表的一条记录。Lotus 1-2-3 2.x 版本创建的电子表格扩展名为 .WK1 。
WK3
选用 WK3 可从 Lotus 1-2-3 的电子表格中导入数据。电子表格的每列对应表的一个字段;每行对应表一条记录。Lotus 1-2-3 3.x 版本创建的电子表格的扩展名为 .wk3 。.
WKS
选用 WKS 可从 Lotus 1-2-3 1-A 版本的电子表格中导入数据。电子表格的每列对应表的一个字段;每行对应表的一条记录。Lotus 1-2-3 1-A 版本创建的电子表格的扩展名为 .wks 。
WR1
选用 WR1 可从 Lotus Symphony 1.1 或 1.2 版本电子表格中导入数据。电子表格的每列对应表的一个字段;每行对应表的一条记录。Symphony 1.1 或 1.2 版本创建的电子表格的扩展名为 .wr1 。
WRK
选用 WRK 可从 Lotus Symphony 1.0 版本电子表格中导入数据。电子表格的每列对应表的一个字段;每行对应表的一条记录。 Symphony 1.0 版本创建的电子表格的扩展名为 .wrk 。
CSV
选用 CSV 可从一个各值之间用逗号分隔的文件中导入数据。一个 CSV 文件的第一行是字段名;当导入文件时,会忽略这个字段名。
XLS
选用 XLS 可从 Microsoft Excel 工作表中导入数据。工作表的每列对应表的一个字段,每行对应表的一条记录。由 Microsoft Excel 创建的工作表扩展名为 .xls 。
XL5
选用 XL5 可从 Microsoft Excel 5.0 版本中导入数据。工作表的每列对应表的一个字段;每行对应表的一条记录。由 Microsoft Excel 创建的工作表文件扩展名为 .xls 。如果省略 SHEET 子句,将从 Sheet1 中导入数据。为了导入指定工作表(sheet) 中的数据,需要包含 SHEET 关键字,并通过 cSheetName 指定工作表名。
XL8
选用 XL8 可从 Microsoft Excel 97 中导入数据。工作表的每列对应表的一个字段;每行对应表的一条记录。由 Microsoft Excel 创建的工作表文件扩展名为 .xls 。如果省略 SHEET 子句,将从 Sheet1 中导入数据。为了导入指定工作表(sheet) 中的数据,需要包含 SHEET 关键字,并通过 cSheetName 指定工作表的名称。
AS nCodePage
指定源表或源文件的代码页。Visual FoxPro 将复制源表或源文件中的内容,并在复制时自动把数据转换到当前表的代码页中。如果指定的 nCodePage 值无法使用,Visual FoxPro 将产生一个错误信息。您可以用 GETCP( ) 函数作为 nCodePage ,显示代码页对话框,在对话框中可以为追加的表或文件指定代码页。如果省略 AS nCodePage ,且 Visual FoxPro 不能判定源表或文件的代码页,Visual FoxPro 将复制源表或文件内容。并在复制数据的过程中,自动将数据转换到当前的 Visual FoxPro 代码页中。如果 SET CPDIALOG 为 ON ,当前选定工作区中的表以代码页标记。如果要从没有代码页标记的表中读入数据并添加到表中时,将显示代码页对话框,您可以在其中选择表的代码页。当前 Visual FoxPro 代码页可由 CPCURRENT( ) 函数设定。如果省略 AS nCodePage 且 Visual FoxPro 能确定追加记录的表或文件的代码页,Visual FoxPro 将复制表或文件的内容。并在复制数据的过程中,自动将数据转换到当前选定表的代码页中。如果 nCodePage 为 0 ,Visual FoxPro 假定需追加记录的表和文件的代码页与当前选定表的代码页相同,并且不进行当前 Visual FoxPro 代码页的转换。
 说明
如果从其中追加数据的文件是 Visual FoxPro 表或是 FoxPro 早期版本中创建的表,其扩展名为 .dbf 。如果 Visual FoxPro 表或 FoxPro 早期版本中创建的表扩展名不是 .dbf ,您必须指定扩展名。如果文件不是 Visual FoxPro 表或 FoxPro 早期版本创建的表,您还必须另外指定文件的类型。

在从 dBASE IV 或 dBASE V 创建的包含备注字段的表中追加记录前,您必须先用 USE 命令在 Visual FoxPro 中打开此表。当提示是否要转换文件时,请选择是(Yes) 。

如果从 Visual FoxPro 表或 FoxPro 早期版本创建的表中读入记录,此表可以在另一个工作区中打开。对于源表中有删除标记的记录,一旦添加到表中,将会去掉删除标记。

使用 DBF( ) 函数可以从一个只读的临时表(cursor) 追加数据,该临时表(cursor) 是使用 SELECT - SQL 命令创建的。可象下面的例子中那样,在DBF( ) 函数中包含临时表(cursor) 的名称:

  复制代码
APPEND FROM DBF('< 临时表(Cursor) 名>')
 

如果目标表使用了自动增量(autoincrementing) ,当 AUTOINCERROR 设置为 ON 时 APPEND FROM 会失败,除非 FIELDS 选项中省略了 AUTOINC 列。设置 AUTOINCERROR 为 OFF 或用 CURSORSETPROP( ) 关闭自动增量(autoincrementing) ,则允许成功地 APPEND FROM 。目标表的自动增量(autoincrementing) 字段或按指定值递增的字段,和源表中的值不适用。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2008-01-13 19:34
zhaocqdx
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2007-11-17
收藏
得分:0 
呵呵,,,太过于复杂了,我只是想把数据导入ygdaxxb表里面,该怎么写法?
2008-01-13 20:24
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
楼主可真想坐享其成。
APPEND FROM FileName TYPE XLS

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2008-01-14 13:09
zhaocqdx
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2007-11-17
收藏
得分:0 
不是我想拿你们的劳动成果而是我真的不知道怎么写,谁能提供段完整代码给我吗?
2008-01-14 14:56
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1547
专家分:184
注 册:2006-6-3
收藏
得分:0 
我准备把人家的内容上传,供大家共享。
2008-01-14 15:21
zhaocqdx
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2007-11-17
收藏
得分:0 
唉,,,,郁闷,还没有搞定这个问题,查了几天的资料了,没有一个试成功的.那位大哥能给一段可以用的代码啊,要求很简单,只是把电子表格里面的内容导进我现有的ygdaxxb里面就可以了.
2008-01-15 12:21
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
4楼正解

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2008-01-15 14:46
zhaocqdx
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2007-11-17
收藏
得分:0 
呵呵...不是小弟拿别人东西,实在是第一次写这段代码,
2008-01-15 16:10
baichuan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:37
帖 子:953
专家分:589
注 册:2006-3-13
收藏
得分:0 
你有没有搞错?

都已经告诉你的够详细了啊!

表结构和XLS对应上之后

use 表名
appe from EXCEL表名称 type xls

2008-01-15 17:19
快速回复:将Excel导入数据表
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027111 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved