你可以手动设置好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模板存放的路径,这是我的系统中的模板文件夹下的路径,请修改,否则会出错。
|