回 帖 发 新 帖 刷新版面

主题:关于EXEL文件转换问DBF的问题

各位老师,我利用下面代码进行了 EXECL 文件到 DBF 的转化~
代码如下:

Import From Getfile('xls') Type XLS   &&导入的DBF表的第一条记录为XLS的第一行。
Copy To test.Dbf For Recno()>1       &&复制除第一条记录的所有记录到test.dbf。
Go Top                            
lnFieldNum=Fcount()        &&字段个数
lcString='Select '        
For lnCount=1 To lnFieldNum    
lcString=lcString+Field(lnCount)+' As '+Alltrim(Evaluate(Field(lnCount)))+','
Endfor
lcString=Left(lcString,Len(lcString)-1)+' from test into dbf ttt2 '
&lcString           &&执行select 查询



不知道那里出错了,反正是有的行有的不行

现在的问题是:
1.在EXCEL里面第一列作为DBF表的字段,不能超过5个汉字,否则就出错。
2.有的EXCEL转换时候会提示:函数参数的值,类型或者数目无效。
3.有的EXCEL转换时候会提示:不正确的EXEL类型


请各位老师指正和完善~~谢谢!

回复列表 (共10个回复)

沙发

有那位老师知道问题出那里吗?还望指教啊~~

板凳

这个问题已经困扰我很多天了,有那位老师给指点一下啊

3 楼

请你参阅高老师的帖子:
http://bbs.pfan.cn/post-214768.html

4 楼

myww 老师,你给我的帖子是从VF表到EXCEL的转换,我的问题是EXCEL文件到DBF表的问题~o~

5 楼

[url=http://bbs.pfan.cn/post-208186.html]从EXCEL到DBF[/url]

6 楼

EXCEL转DBF 我认为要解决的问题主要是:
1、绕过EXcel 和 VFP 版本之间的不匹配问题, 所以尽量不要使用 COPY 等, 使用高老师的办法。
就是用VFP命令打开EXCEL,
2、通过变量指定EXCEL中数据源所在的行和列,逐行逐列读取数据。
3、EXCEL中有些列被人为的设置成了数值型、时间日期型的数据, 要么DBF表中的数据类型与之相同,要么读取了列数据后进行判断并转换成与DBF表中字段类型一致的数据。
或者可以先判断EXCEL列的数据类型,再根据这个类型顺序建立DBF

7 楼

我用了高老师的代码进入我的程序,怎么老出错"不能识别的代码'VFP字段'"

8 楼

我用了高老师的代码进入我的程序,怎么老出错"不能识别的代码'VFP字段'",请高老师指正,其实我只要将固定格式XLS转加入我的DBF中就OK了(他们俩的字段和顺序完全一样)!!!

9 楼

glaser,你的另外一个贴子我已看过了,对于你的问题,最简单的方法是将你的EXCEL表另存为.DBF数据表,然后,.... 就不用说了.

10 楼

Import From Getfile('xls') Type XLS   &&导入的DBF表的第一条记录为XLS的第一行。
Copy To test.Dbf For Recno()>1       &&复制除第一条记录的所有记录到test.dbf。
Go Top                            
lnFieldNum=Fcount()        &&字段个数
lcString=''        
For lnCount=1 To lnFieldNum    
lcString=lcString+Field(lnCount)+' As '+Alltrim(Evaluate(Field(lnCount)))+','
Endfor
lcString='Select ' + lcString
lcString=Left(lcString,Len(lcString)-1)+' from test into dbf ttt2 '
&lcString           &&执行select 查询



可以了,你循環加的時候應該加了好多"SELECT"在裡面除非你的EXCEL只有一列。

我来回复

您尚未登录,请登录后再回复。点此登录或注册