|
将VFP的数据转给Excel
|
|
来源: 作者: 发布时间:1970-01-01
|
|
用Visual FoxPro编程,很多时候需要将用户需要的数据有条件地转出给其他软件处理。Excel是大家熟悉的软件,这里,本人总结了一种转换方法,供大家参考。 ---- 1、 转化的基本条件 ---- 对需要转出数据的主数据表,需要提供另外一个辅助表,此表需要与主表同时打开,表的结构如下:(在此命名为d_gwt.dbf) 字段名 类型 宽度 备注 E_NAME 字符型 20 记录主表的字段名 D_FORT 逻辑型 1 备份选择项目(可以不要) S_FORT 逻辑型 1 选择项目 ---- 2、 建立一个如下表单以供主表单调用,以便选择输出不同的字段的内容: 表单的Init event: replace all d_gwt.d_fort with d_gwt.s_fort goto top Grid1的Init event: this.column2.check1.caption="" &&取消选择符号后面的文字 “取消”的click event: release thisform “全部不选”的click event: nrecno=recno() replace all d_fort with .F. goto nrecno thisform.refresh “全部选中”的click event: nrecno=recno() replace all d_fort with .T. goto nrecno thisform.refresh “确认”的click event: replace all s_fort with d_fort release thisform ---- 3、 记录的筛选: ---- 请使用Visual FoxPro自带的过滤器选择记录,当然也可以自己另外设计程序对主数据表进行筛选,这里只是使用filter()的返回值。 ---- 4、 转化数据给Excel: ---- 打开建立一个命令控件,使其click event如下: LOCAL i, j, xlsheet, XLApp, tmpsheet, nrecno,gwtfilter, ntorf SELE gwt &&在此使用gwt.dbf为主数据表 gwtfilter=filter() count to nrecno SELE D_GWT COUNT TO NTORF FOR S_fort IF NTORF=0 WAIT "没有选择任何项目的数据 给Excel处理..." windows Sele gwt Return ENDIF SELECT e_name from alias() where s_fort INTO ARRAY arrTestData1 SET FILTER TO s_fort=.T. selectfield="" GOTO TOP DO WHILE .NOT. EOF() selectfield=selectfield E_NAME ',' SKIP ENDDO selectfield=SUBSTR(selectfield,1,len(selectfield)-1) SET FILTER TO SELE GWT DIMENSION arrtestdata(ntorf,nrecno) IF Empty(GWTFILTER) SELECT &selectfield from alias() INTO ARRAY arrTestData ELSE SELECT &selectfield from alias() WHERE &gwtfilter INTO ARRAY arrTestData ENDIF WAIT WINDOW "Starting Excel..." NOWAIT tmpsheet = GetObject('','excel.sheet') XLApp = tmpsheet.application XLApp.Visible = .t. XLApp.WorkBooks.Add() XLSheet = XLApp.ActiveSheet **转换第一行的数据,也即是数据表的字段 FOR I=1 TO NTORF XLSheet.Cells(1,I).Value = arrTestdata1(1,I) ENDFOR **转换数据内容 FOR i = 1 to nrecno FOR j = 1 to ntorf XLSheet.Cells(i 1,j).Value = arrTestData(i,j) ENDFOR ?? chr(7) ENDFOR WAIT WINDOW "数据转化成功..." TIMEOUT 2
TAG: 数据 选择 selectfield 需要 clickevent: nrecno 使用
|
| 上一篇:VFP与Excel交互编程 下一篇:在 VFP 中控件 Excel 的小小经验集---摘自CSDN |
|
[ 收藏]
[ 推荐]
[ 评论(0条)]
[返回顶部] [打印本页]
[关闭窗口] |
|
|
| |
|
|
|