微软公司的VFP6.0功能强大,但在制作报表方面似乎略嫌不够,而Excel刚好可以弥补其缺陷。在VFP中调用Excel生成报表,不仅可以节省时间,而且在排版方面具有更大的优势。
调用命令
要调用Excel,有必要先了解下述命令语句及其功能。
1、创建Excle对象
eole=createobject("Excel.application")
2、添加新的工作簿
eole.workbooks.add
3、设置第三个工作表为激活工作表
eole.worksheets.("sheet3").activate
4、打开指定工作簿
eole.workbooks.open("c:demo.xls")
5、显示Excel窗口
eole.visible=.t.
6、给单元格赋值
eole.cells(1,4).value=xm
其中:xm为表的字段名
7、设置四个边框线条的类型
eole.activatesheet.range("b3:d3").borders(2).linestyle=1
其中:borders参数:1-左;2-右;3-顶;4-底;5-斜/;6-反斜。linestyle参数:1和7-细实线;2-细虚线;4-点虚线;9-双细实线
8、设置字体
eole.activatesheet.cells(2,1).font.name
="黑体"
9、字体大小
eole.activatesheet.cells(1,1).fontsize=25
10、打印预览工作表
eole.activatesheet.printpreview
11、打印输出
eole.activatesheet.printout
12、关闭工作簿
eole.workbooks.close
13、退出Excel
eole.quit
程序实现
当熟悉了上述功能语句的用法及其效用后,我们可试着编写一个简单的应用程序。在VF命令窗口中输入modify command,然后在文本框中输入以下代码(&&&&及其后的内容表示注释):
use a.dbf &&&&在实际应用中a用真实表名代替
eole=createobject("excel.application")
eole.workbooks.add
eole.worksheets("sheet1").activate
eole.visible=.t.
k=fcount() &&&&取得字段数
for l=1 to k
eole.cells(1,l).value=field(l)
endfor &&&&在(1,x)单元格中写入字段名称
i=reccount() &&&&取得记录个数
for j=1 to i
go j
wait "正在写入完第"+alltrim(str(j,5))+"条记录" window nowait
for x=1 to k
zhi=field(x)
eole.cells(j+1,x).value=&&zhi &&&&在(j+1,x)单元格写入记录值
endfor
endfor
wait "记录写完" window timeout 3
文件保存为b.prg,在命令窗口中执行do b.prg,等待一会儿我们就可看到生成的Excel表,试着预览一下,效果还不错。以上只是其应用的简单一例,相信当您熟练地掌握了调用命令语句后,可以开发出更完善的应用程序,希望以上会对广大VFP爱好者有所帮助。
以上代码在Windows 98 + VFP6.0环境下调试通过。
|