您现在的位置: 捷凌网安 >> 编程语言 >> VFP编程 >> 正文
VFP与Excel交互编程

作者:佚名 责任编辑:左决 点击数: 更新时间:2008-2-16 6:44:46

local condITion,where1,first,scommand,cell,newsheet,found1,n

OleApp=CreateObject(“Excel.Application”)

&& 打开Excel,产生OLE对象

OleApp.Application.Caption=“VFP交互编程

&& 指定标题栏名称

OleApp.Application.Visible=.T.

&& 置Excel可见

OleApp.Application.WorkBooks.Open(“d:\vfp\VFP交互.xls”)

&& 打开Excel工作簿,用户也可以修改连接条件或者查询条件

where1=“”

&&保存SQL中where子句的变量

first=.t.

&&置首次进入“查询”工作表中“条件”区域标志

found1=.f.

n=1

DO WHILE .T.

WITH OleApp.Application

nAnswer = MessageBox(“开始搜索?”, 32+4, “搜索指定数据”)

&&显示搜索信息

IF (.NOT. (nAnswer=6))

&& 如按下“Yes”按钮,则开始搜索,反之退出

EXIT

ENDIF

.Sheets(“查询”).Select

&& 选取示例中的对应工作表

condITion=.range(“连接条件”).value

&&得到“连接条件”区域中的逻辑连接符

for each cell in .range(“条件”).value

&&将表单区域内所有单元的数据拼接以形成where的连接逻辑串

If first Then

Where1 = Where1 + cell

&&首次进入时where子句中串前不需要逻辑连接符

first = .f. &&置非首次进入标志

Else

Where1=Where1 +“ ”+condITion +“ ”+ cell

&&这里condITion的值取and或者or

EndIf

next for

.Sheets.Add && 新建一工作表单

&&下面的for …each子句是用于找寻有否对应的工作表,若有则在搜索结果1、搜索结果2……搜索结果n中得到最大的n值以便产生下一个比n大1的新工作表“搜索结果&(n+1)”

for each newsheet in .worksheets

if “搜索结果”$ newsheet.name

n=max(val(subset(newsheet.name+space(2),9,2)),n) &&得到最大的n值

found1=.t. &&置找到工作表中前四个汉字是“搜索结果”的工作表

endif

next for

if not found1

.ActiveSheet.Name =“搜索结果1”

&& 指定工作表单的名称

else

.activesheet.name=“搜索结果”+str(n+1,2)

&&得到唯一的工作表

endif

SCommand = “SELECT * FROM d:\vfp\学生成绩表 WHERE ”+ALLTrim(where1) +

“INTO CURSOR TEMP”

&& 形成VFP查询命令串

&Scommand && 执行VFP命令串

_VFP.DataToClip(“TEMP”, , 3)

&& 将搜索结果以文本方式拷贝至剪切板

.Range(“a1: a1”).Select

&& 指向拷贝目标区域左上角单元

.ActiveSheet.Paste

&& 粘贴搜索结果

ENDWITH

ENDDO

OleApp.QuIT

&& 关闭Excel,保存更新后的工作簿文件

结束语

VFP与Excel的交互能力是很强的,用户可以使用VFP处理数据库的一些运算,如插入、排序、合并、选择等,将结果交由Excel中进行一些后期的处理,甚至可以将一些抽取数据的条件直接加入到Excel的条件区域中,由VFP来读取条件区域进行数据的筛选。总之,只要能充分利用好各自的优点,理解交互的接口方法,就一定能够编写出较适用的程序,满足实际工作的需要。

上一页  [1] [2] 

  • 上一篇文章:

  • 下一篇文章:
  •  
    最进更新
    普通文章VC++设计超强仿QQ自动伸缩窗04-17
    推荐文章基于HOOK和MMF的Win密码渗透04-17
    推荐文章几种VC++数据库开发技术的相04-17
    普通文章多线程、Socket技术及委托技04-11
    推荐文章VB.Net连接各种数据库的几种04-11
    普通文章VB.NET中的多窗体编程:升级04-11
    普通文章用VB.NET定制Windows控件04-11
    普通文章VB.NET中监视文件夹的变化04-11
    普通文章VB.NET中对象的克隆04-11
    推荐文章VB.NET中的TextBox控件详解04-11
     
    推荐文章
    推荐文章基于HOOK和MMF的Win密码渗透04-17
    推荐文章几种VC++数据库开发技术的相04-17
    推荐文章VB.Net连接各种数据库的几种04-11
    推荐文章VB.NET中的TextBox控件详解04-11
    推荐文章在VB.NET中进行抓屏04-11
    推荐文章VB.Net开发的长内容自动分页04-11
    推荐文章VB.NET中快速访问注册表技巧04-11
    推荐文章PHP5手动最简安装方法03-07
    推荐文章完全讲解PHP+MySQL的分页显示03-07
    推荐文章Linux Shell元字符知识笔记02-21
     
    热点文章 
    普通文章VC++设计超强仿QQ自动伸缩窗04-17
    推荐文章基于HOOK和MMF的Win密码渗透04-17
    推荐文章几种VC++数据库开发技术的相04-17
    普通文章VB.NET中的多窗体编程:升级04-11
    普通文章用VB.NET定制Windows控件04-11
    普通文章VB.NET中对象的克隆04-11
    推荐文章VB.NET中的TextBox控件详解04-11
    普通文章VB/VB.NET/C#导出到Excel的方04-11
    普通文章如何通过VB.NET获取网卡地址04-11
    普通文章VB.NET中使用ListView控件的04-11

    | 设为首页 | 加入收藏 | 联系站长 | 广告服务 | 友情链接 | 版权申明 | 网站地图 |

    在线交流 捷凌网安主群:51649627
    Copyright 2007-2008 © 捷凌网安. All rights reserved.
    备案序号:蜀ICP备08001812号