欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

在SharePoint中编写调用Excel Services的Filter Consumer方法

程序员文章站 2023-12-10 09:28:58
在SharePoint中编写调用Excel Services的Filter Consumer方法...

本文将举例说明如何在wssv3中创建一个filter consumer webpart 来显示头条新闻。这些头条新闻内容依赖于地理区域的筛选提供者webpart中用户的选择。头条新闻webpart将通过调用microsoft excel services从一个excel工作簿中得到。

下面是创建filter consumer webpart的五大步骤

在visual studio 2005中创建一个web control library项目。
添加到microsoft.sharepoint.dll的引用。
设置assembly的版本号。
为assembly添加强命名。
编写头条新闻filter consumer webpart的代码。
在visual studio 2005中创建一个web control library项目

创建一个filter consumer webpart最简单的方式是套用visual studio 2005的自定义web控件模板。

下面是创建的步骤:

文件->新建->项目,出现新建项目对话框。
在项目类型中,选择c#,选择windows类别。
在模板选择中,选择web控件库。
为项目指定一个名称newsheadlineswebpart 。
指定保存的位置,确定。现在,项目中包含一个名为webcustomcontrol1.cs的代码文件。
在解决方案浏览器中右击该文件,选重名名。将该文件重命名为newsheadlineswebpart.cs。
添加必要的程序集的引用


我们将要编写的头条新闻筛选消费者webpart是要从microsoft.sharepoint.webpartpages.webpart类继承而来。因此,必须添加windows sharepoint services的程序集;由于使用到了excel services,还要引用excel services的程序集,以便允许使用其中的类。

下面的步骤是展示了如何直接连接到excel web serivces库。之所以如此是因为头条新闻webpart运行域sharepoint环境中,这与使用soap通过http访问web service的方式不同。在我们的这种场景下直接连接可以提供更高的性能和安全性,并允许我们的头条新文webpart可以工作在所有的sharepoint拓扑结构下。而当我们创建独立的web应用程序(web应用程序并不运行在sharepoint中)时,实际上是真正用到web service的接口。关于何时选择使用soap方式通过http访问,何时直接连接到excel web services dll,您可以参考这篇moss sdk文章:loop-back soap calls and direct linking

如果visual studio运行在office sharepoint server 2007服务器上,请以下面的步骤进行引用:

项目->添加引用,出现添加引用对话框。
点击.net标签,选择excel web service 组件(microsoft.office.excel.server.webservics.dll)。接着向下滚动,找到windows sharepoint services组件(microsoft.sharepoint.dll),按住ctrl键,再选择。
确定,完成引用的添加。
如果visual studio与office sharepoint server 2007不在同一台机器上,我们需要从一台装有office sharepoint server 2007的机器上拷贝该文件到我们的开发环境所在机器的项目文件夹下。默认情况下,microsoft.sharepoint.dll和microsoft.office.excel.server.webservics.dll位于装有sharepoint的机器的以下目录中:


代码如下:

拷贝过来后,将这两个文件添加到引用中。

添加到本地拷贝的程序集的引用

项目->添加引用,出现添加引用对话框。
点击浏览,导航到放windows sharepoint services和excel web service程序集文件的目录
选中microsoft.sharepoint.dll 和microsoft.office.excel.server.webservices.dll 文件。
确定,完成引用的添加。
如果要使excel web service正常工作,还需要添加到system.web.services程序集的引用:

项目->添加引用,出现添加引用对话框。
点击.net标签,选择system.web.services 组件。
确定,完成引用的添加。
设置webpart程序集的版本号

默认情况下,自定义web控件项目的assemblyversion属性设为每次重新编译时自动增加。web部件页通过web.config文件中注册的版本号来识别webpart。如果assemblyversion属性设为每次重新编译时自动增加,当我们把webpart导入到web部件页后又重新编译了该webpart,就会因为找不到程序集而出错了。避免字增的方法就是手工指定一个版本号。

为webpart程序集手工指定版本号

项目->newsheadlineswebpart 属性。
在项目属性页面中,点应用程序标签。
点程序集信息
在程序集信息对话框中,设定版本为1.0.0.0
确定,保存。
关闭项目属性页。
为webpart程序集进行强命名

为了使我们的webpart可以部署到gac(global assembly cache)中,供多个应用程序共享,我们必须为webpart增加强命名。强名称由一个文本格式的名称,版本号,地区语言信息(如果提供了的话)和一个公钥数字签名组成。

在visual studio中为webpart强命名

项目->newsheadlineswebpart 属性。
在项目属性页面中,点签名标签。
在选择一个强名key文件处,点新建。
在创建强命名key文件对话框中,填写keypair文件名。取消下面的使用密码保护我的密钥的选择框。
关闭项目属性页。
实现头条新闻filter consumer webpart

下面我们将创建一个类实现头条新闻筛选消费者部件。在代码文件头部添加下列引用。


代码如下:

引用这些命名空间可以使我们方便的使用其中的类库和类型,而不必通过使用完整的命名空间路径来访问。

相关标签: Excel Services