主题:我想实现用foxpro程序将一个文件夹下的一大批DBF文件都转换成excel文件
zhangruizhang
[专家分:0] 发布于 2012-04-03 12:58:00
我想实现用foxpro程序将一个文件夹下的一大批DBF文件都转换成excel文件
我自己的处理方法是首先用excel宏将这个文件下的dbf'文件名都抓取出来,形成一张表,另存为dbf表格,叫做sheetname,其中只有个字段filename。
以下是我自己写个foxpro程序,但是未能实现我想要的功能,请你们帮我看看问题出在哪里?
use sheetname
do while !eof()
sourcename= filename
USE &sourcename
COPY to sourcename+".xls" type xls
ENDdo
回复列表 (共3个回复)
沙发
liupeisong [专家分:2340] 发布于 2012-04-03 15:32:00
题意还是不很明白!?
假设题意如下:当前文件夹中有1.dbf、2.dbf等数目不知的DBF,需要转换成1.xls、2.xls等对应的EXCEL表,可以这样干:
1、使用ADIR函数得到数组,其中就有文件名等信息;
2、循环数组,对每个DBF先use,再copy to XLS这样就好了
好象不需要用到excel
PS:楼主代码可能存在的问题:假定我们用DBF进行循环的话,每次应该SKIP一下,excel的没有这样用过,但是估计也应该SKIP或者类似功能的来一下都对!
板凳
zhangruizhang [专家分:0] 发布于 2012-04-03 16:31:00
我已经解决了。我的题意就你说的将1.dbf 2.dbf 3.dbf 转换成1.xls 2.xls 3.xls
我自己写的程序如下:
sele 1
use sheetname
FOR i = 1 TO RECCOUNT()
GO i
sourcename= filename
SELECT 2
USE &sourcename
COPY TO LEFT(sourcename,LEN(sourcename)-4)+".xls" type fox2x
SELECT 1
endfor
其中sheetname存放的的是1.dbf,2.dbf,3.dbf等要转换的dbf文件名
我的这段程序所生成的excel文件会和dbf文件出在同一个根目录下,如果我想放在根目录下的excel子目录中,应该怎么写。
3 楼
liupeisong [专家分:2340] 发布于 2012-04-03 17:11:00
[quote]
我已经解决了。我的题意就你说的将1.dbf 2.dbf 3.dbf 转换成1.xls 2.xls 3.xls
我自己写的程序如下:
sele 1
use sheetname
FOR i = 1 TO RECCOUNT()
GO i
sourcename= filename
SELECT 2
USE &sourcename
COPY TO LEFT(sourcename,LEN(sourcename)-4)+".xls" type fox2x
SELECT 1
endfor
其中sheetname存放的的是1.dbf,2.dbf,3.dbf等要转换的dbf文件名
我的这段程序所生成的excel文件会和dbf文件出在同一个根目录下,如果我想放在根目录下的excel子目录中,应该怎么写。
[/quote]
下面这样写就好了(VFP9.0通过),不需要事先建立sheetname!
CLOSE ALL
ADIR(dbfnames,'*.dbf')
FOR i=1 TO ALEN(dbfnames,1)
USE &dbfnames(i,1)
COPY TO 'd:\temp\'+JUSTSTEM(dbfnames(i,1)) XLS
ENDFOR
我来回复