你可以手动设置好XLS模板,以后要转成电子表格的话,直接将DBF中的记录拷贝到电子表格中去就可以了。下面提供代码,仅供参考,不过这种方法比较慢:
fn1=alias()
if empty(allt(fn1))
=messagebox("没有打开的文件,请重复试,请检查文件是否关闭",16,"错误")
RETU
ELSE
FN=PUTFILE("文件名","&fn1","XLS")
IF EMPTY(ALLT(FN))
RETU
ELSE
eol=createobject("excel.application")
eol.workbooks.open(SYS(5)+CURDIR()+"模板\"+ALIAS())
wait wind "请稍候,正在转换为EXCEL表格……" nowa
t1=datetime()
for i=1 to RECC()
go I
SCATTER MEMO TO jl
for y=1 to FCOUNT()
do case
case vartype(jl(y))="C"
eol.cells(I+3,y).value=allt(jl(y))
case vartype(jl(y))="D"
IF EMPTY(JL(Y))
eol.cells(I+3,y).value=""
ELSE
eol.cells(I+3,y).value=jl(y)
ENDI
case vartype(jl(y))="N"
IF EMPTY(JL(Y)) or jl(y)=0
eol.cells(I+3,y).value=""
ELSE
eol.cells(I+3,y).value=jl(y)
ENDI
endc
endf
endf
t2=datetime()
t3=allt(str(int(t2-t1)/60))
t4=allt(str(mod(t2-t1,60)))
=messagebox("对不起,让您久等了,数据已经成功转换为EXCEL表格,总计用时:"+t3+"分";
+t4+"秒,请单击“确定”按钮查看转换结果!",0+64,"转换完毕")
eol.visible=.t.
ENDI
eol.ActiveWorkbook.SaveAs(FN)
ENDI
这种方法中,表中不能有通用字段。备注字段也可以完美的拷入电子表格中。这个模板的大概设置,第一至三行为表头,从第四行写入数据,可以根据需要个修改。
还有就是其中SYS(5)这一行表示EXCEL模板存放的路径,这是我的系统中的模板文件夹下的路径,请修改,否则会出错。
联系客服