回 帖 发 新 帖 刷新版面

主题:[讨论]本人对excel导入dbf表时存在的字段名问题的思路,谁能解决?

[color=0000FF]本人对excel导入dbf表时存在的字段名问题的思路,是这样的:[/color]  
   用IMPORT FROM cFileName TYPE  XLS 或者用COPY TO cFileName TYPE XLS命令,把excel导入到dbf表时,DBF表的字段名是A B C D ....而不是excel表的第一行的名字。
  
  如果用下列的手动方法,可以把excel表的第一行的名字作为DBF表的字段名,即:

第一步:打开excel表,点击:文件--另存为--保存类型选“dbaseⅢ”,文件名(如:abd.dbf)--保存--关闭excel表。

第二步:直接打开abc.dbf,此时,abc.dbf表的字段名就是excel表的第一行的名称。

[color=FF0000]问题:哪位专家能用这个思路,用VFP编程的方法实现上述两步的结果。[/color]

回复列表 (共4个回复)

沙发

你的方法不可取!
为了替换字段名,而去启动庞大的,excel 软件,
其速度慢、耗用资源大不说,还容易发生冲突。

你可以用:

SELECT - SQL 

ALTER TABLE 
命令修改字段名。

板凳

其实我认为Excel并不庞大,你在VFP里用代码实现你的两步操作也可以实现.
具体代码我没时间给你写(年纪大了,记不住了,得调试,得花点儿时间),在这里把方法告诉你一试:
打开EXCEL表,然后打开宏录制功能,然后在磁盘上找到并打开你要转的EXCEL表,将其另存为.dbf文件到你希望的目录中,然后,停止宏录制,查看宏代码,将其转换为VFP代码.

3 楼


谢谢楼上的回答,我在试验,快做好了。等做好后一定贴上来。

4 楼

经过本人的试验,完全可以模拟EXCEL另存为DBF格式的功能。主要代码如下:

cfilename=GETFILE("XLS","","请选择一个XLS文件")
cfile=ADDBS(JUSTpath(cfilename))+JUSTstem(cfilename)
mExl=CREATEOBJECT("Excel.Application")     &&建立一个对象
mExl.application.Workbooks.Open(cfilename) && 打开EXCEL文件
mExl.Worksheets(1).activate        &&激活第一个工作表,可以更改
*......................        &&根据情况自己加入一些代码
mExl.Activesheet.SaveAs(cfile,8)    && 工作表另为dbf格式
mExl.quit                &&退出

我来回复

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