快速将 VFP 数据库表生成为 EXCEL 表
江西旅游商贸职业 晏争农 摘要:本文介绍了用 VFP 作为开发语言,将任意 VFP 数据表快速输出为 Excel 表的小工具 软件程序编制方法,从而实现在 Excel 中进行表格的编辑。 关键词: VFP EXCEL 事件代码 在实际工作中,经常遇到许多办公管理
软件所处理的数据是以 VFP 数据表文件形式存 储或打印报表,其格式往往不能满足用户灵活多变的报表需要。Excel 是微软公司办公自动 化套件中的一个软件,它以其强大的电子表格功能、友好的界面深受许多用户欢迎。利用 VFP 程序快速将任意 VFP 数据表输出到 EXCEL 中,以便在 EXCEL 中进行编辑打印存档, 提高工作效率。 此程序可选择任意一个 VFP 数据库表文件,并可通过待选字段内容,把需要输出的字 段选出,输出选择字段的数据至 EXCEL 中直接进行编辑。 一、在 VFP 中建立一个新表单(如取名为:转换.scx),在表单上添加如图 1 所示的各对象控 件,设置控件的主要属性如下表: 对象 Form1 List1 List2 Label1 Label2 Label3 Caption 属性 Caption MoverBars 属性值 VFP 数 据 输 出至 EXCEL .f. 待选字段 选出字段 选择数据表 文件 对象 Command1 Command2 Command3 Command4 Command5 Command6 Caption 属性 属性值 输出 关闭 > >> < <<
图1 二、建立各对象的事件代码: 1、待选字段列表框 List1.Click 事件代码: if thisform.list1.listindex>0 thisformmand3.enabled=.t. endif 2、选出字段
列表框 List2.Click 事件代码: if thisform.list2.listindex>0 thisformmand5.enabled=.t. endif
3、确定按钮 Command1.Click 事件代码: *取得选择的字段 if thisform.list2.listcount=0 zd='*' else zd='' for i=1 to thisform.list2.listcount zd=zd+thisform.list2.list(i)+',' next l=len(zd) zd=substr(zd,1,l-1) endif local mycursor select &;zd from &;fn into cursor mycursor * 将需要输出到 Excel 表的数据输出 exc=createobject("excel.application") &;&; 创建 Excle 对象 exc.workbooks.add &;&;添加新的
工作簿 exc.worksheets("sheet1").activate &;&;设置第一工作表为激活工作表 exc.visible=.t. &;&;显示 Excel 窗口 k =fcount() &;&;取得字段数 for l=1 to k exc.cells(1,l).value=field(l) &;&;在(1,x)单元格中写入字段名称 endfor i=reccount() &;&;取得记录个数 for j=1 to i go j for x=1 to k zhi=field(x) exc.cells(j+1,x).value=&;zhi &;&;在(j+1,x)单元格写入记录值 endfor endfor messagebox( "记录全部输出完毕!",0,'') 4、关闭按钮 Command2.Click 事件代码: close database clear even thisform.release 5、“>”按钮 Command3.Click 事件代码: if thisform.list1.listindex>0 thisform.list2.additem(thisform.list1.list(thisform.list1.listindex)) thisform.list1.removeitem(thisform.list1.listindex) thisformmand4.enabled=.t. else thisform.list2.listindex=1 this.enabled=.f.
thisformmand4.enabled=.f. thisf
ormmand6.enabled=.t. thisformmand5.enabled=.t. endif 6、 “>>”按钮 Command4.Click 事件代码: for i=1 to thisform.list1.listcount thisform.list2.additem(thisform.list1.list(1)) thisform.list1.removeitem(1) endfor thisformmand3.enabled=.f. thisformmand4.enabled=.f. thisformmand5.enabled=.t. thisformmand6.enabled=.t. thisform.list2.listindex=1 7、 “<”按钮 Command5.Click 事件代码: if thisform.list2.listindex>0 thisform.list1.additem(thisform.list2.list(thisform.list2.listindex)) thisform.list2.removeitem(thisform.list2.listindex) thisformmand3.enabled=.t. else this.enabled=.f. thisformm