分享

11

 dy_zyjing 2010-12-29

你可以手动设置好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

这种方法中,表中不能有通用字段。备注字段也可以完美的拷入电子表格中。这个模板的大概设置,第一至三行为表头,从第四行写入数据,可以根据需要个修改。

 

还有就是其中SYS5)这一行表示EXCEL模板存放的路径,这是我的系统中的模板文件夹下的路径,请修改,否则会出错。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约