dedecms织梦内容管理系统      
首页 | IT信息 | 网页制作 | 编程开发 | 软件办公 | 数 据 库 | 图形图象 | 网络安装 | 软件下载 | 专题 | 会员中心 | 支持论坛
  当前位置:首页>编程开发>VFP>VFP与Office>文章内容
将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条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·在 VFP 中控件 Excel 的小小经验
·VFP调用EXCEL的补充方法
·VFP与Excel交互编程
·VFP与EXCEL的几种交互编程方法
·VFP中利用Excel制作数据库报表
·VFP与Excel交互编程
  相关文章
·VFP与Excel交互编程
·在 VFP 中控件 Excel 的小小经验
·VFP中利用Excel制作数据库报表
·VFP调用EXCEL的补充方法
·VFP与EXCEL的几种交互编程方法
·VFP与Excel交互编程
Power by Anxi35