主题:[原创]从当前任意dbf-table 到 xl-table的实现过程
jinlonggao
[专家分:17130] 发布于 2007-01-14 19:02:00
请版主请此贴清理掉!有孽障在哭丧,没法呆了[em20]
最后更新于:2010-01-25 17:01:00
回复列表 (共119个回复)
41 楼
jinlonggao [专家分:17130] 发布于 2007-09-05 08:07:00
我用VFP编了一个看图(照)片的程序,可以任意放大或缩小图片,可以用鼠标拖动放大了的图片以看清图片上的各个细节,但就是速度慢,尤其是放大后的拖动.我分析其原因不在代码的优劣,而在于VFP编这样的程序是否合适.说白了就是VFP本身的原因.
同样,从VFP到EXCEL表的转换,涉及到两个不同的系统平台,所以速度不高,原因也不在于代码.好在EXCEL有直接读取VFP表的功能,你只要将你想转移的表直接在EXCEL中读取,然后转存为EXCEL表即可.我的程序是配合查询工作使用的.查询出来的数据一般不大,多不过几十条,数百条记录.当得到查询表后,点击转换菜单,在几秒钟之内就会得到EXCEL数据,然后又几秒钟就能从打印机中得到纸质文档.非常方便!
42 楼
jingjing2 [专家分:10] 发布于 2007-10-24 17:16:00
看了你的<从当前工作区中打开的任意dbf-table或cursor 到 xl-table的实现过程>的文章并用这个程序改进了我的相关程序,谢谢.
再请教一下如何控制excel 表的列宽?
另外您以前发了从EXCEL表到VFP表的实现过程的文章在哪里?
43 楼
jinlonggao [专家分:17130] 发布于 2007-10-24 18:52:00
EXCEL表的列宽在EXCEL环境下是最容易操作的,所以没有必要VFP代码控制它.
44 楼
myww [专家分:1190] 发布于 2007-10-26 11:15:00
高老师,您好!
今天我才拜读了您编写的转换程序,非常好用。
但是,我想请问:日期时间型数据在EXCEL里就成了#######,这种情况如何处理呢?谢谢!
45 楼
jinlonggao [专家分:17130] 发布于 2007-10-26 13:12:00
老张您好!
你的贴子看到了,现在比较忙,得空了我会把解决方案告诉你,请继续留意本贴!
另外,还发现了个问题,如果VFP表中为字符型"3-4"时,转过去后会"3月4日"也是很讨厌的事.我正在探索解决办法.
突然想起一种办法,你不妨一试:
将
Sheet.Cells[nRows,i] = iif(empty(&fieldname),'',iif(type(fieldname)="C",alltrim(&fieldname),&fieldname))
一句改为:
Sheet.Cells[nRows,i] = iif(empty(&fieldname),'',iif(type(fieldname)="C",alltrim(&fieldname),iif(type(fieldname)="D",dtos(&fieldname),&fieldname)))
46 楼
myww [专家分:1190] 发布于 2007-10-26 14:13:00
高老师,您好!
我将
Sheet.Cells[nRows,i] = iif(empty(&fieldname),'',iif(type(fieldname)="C",alltrim(&fieldname),&fieldname))
一句改为:
Sheet.Cells[nRows,i] = iif(empty(&fieldname),'',iif(type(fieldname)="C",alltrim(&fieldname),iif(type(fieldname)="D",dtos(&fieldname),&fieldname)))
还暂时没有解决此问题。
但是不急,我又不急用,只是学学方法而已。
谢谢!
47 楼
myww [专家分:1190] 发布于 2007-10-26 16:10:00
高老师,您好!
我将
Sheet.Cells[nRows,i] = iif(empty(&fieldname),'',iif(type(fieldname)="C",alltrim(&fieldname),&fieldname))
一句改为:
Sheet.Cells[nRows,i] = iif(empty(&fieldname),'',iif(type(fieldname)="C",alltrim(&fieldname),iif(type(fieldname)="D",dtos(&fieldname),&fieldname))) 后,
此问题已经解决(将日期时间型的那列拉宽即可,先前没将列拉宽,所以仍显#####,拉宽后日期时间都显示出来了。这个方法是0901chang老师在贴子上告诉的)。
谢谢!
48 楼
jinlonggao [专家分:17130] 发布于 2007-10-26 17:49:00
那么,如果不改那一句行不行?
49 楼
myww [专家分:1190] 发布于 2007-10-26 19:49:00
[size=5][color=FF0000]高老师:[/color][/size]
[color=0000FF][size=4]不改那一句,一样可以运行。出现######的原因仍是我先前不懂方法。
现在只要把列宽拉宽就没问题了。都是我的粗心让您又多费心了,实在对不起!
感谢您编的这么好的程序![/color][/size]
50 楼
jinlonggao [专家分:17130] 发布于 2007-10-29 11:27:00
看来42楼的要求还是有必要的.
我来回复