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

所属分类: 软件教程 / 编程开发 阅读数: 2017
收藏 0 赞 0 分享

本文将举例说明如何在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的机器的以下目录中:


复制代码
代码如下:

C:\Program Files\Common Files\Microsoft Shared\web server\extensions12ISAPI

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

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

项目->添加引用,出现添加引用对话框。
点击浏览,导航到放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

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


复制代码
代码如下:

using wsswebparts = Microsoft.SharePoint.WebPartPages;
using aspnetwebparts = System.Web.UI.WebControls.WebParts;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Collections.ObjectModel;
using Microsoft.office.Excel.Server.WebServices;


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

更多精彩内容其他人还在看

parse_url函数解析

  描述  array parse_url ( string url )      此函数返回一个关联数组,包含现有 URL 的各种组成部分。如果缺少了其中的某一个,则不会为这个组成部分创建数组项。组成部分为:      scheme - ...
收藏 0 赞 0 分享

visualstudio2019怎么连接并使用VSTS?

visualstudio2019怎么连接并使用VSTS?visual studio 2019使用的时候,想要连接visual studio team service,该怎么操作呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

vscode怎么规范代码? vscode代码格式化的教程

vscode怎么规范代码?vscode编程开发的时候,发现代码很轮,想要自动格式化代码,该怎么操作呢?下面我们就来看看vscode代码格式化的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

Sublime Text英文字母大小写怎么切换?

Sublime Text英文字母大小写怎么切换?Sublime Text中编程开发的时候,想要切换英文大小写,该怎么切换呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

CodeBlocks(vc开发工具)的入门使用教程

今天起我们将加大对其他编译器学习的支持,对于训练场中的题目,我们极力建议大家以CodeBlocks作为编程工具,因为VC6的种种问题及与训练场判题系统标准的不符,导致不少新同学被坑不少
收藏 0 赞 0 分享

Sublime代码编辑器怎么重新打开编码?

Sublime代码编辑器怎么重新打开编码?Sublime代码编辑器之前变价的编码想要打开,该怎么打开呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

vb怎么将年表分成四份季度表?

vb怎么将年表分成四份季度表?visual basic中的一个表想要分成多分表,该怎么实现呢?我们可以使用代码实现,下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

VB怎么编写给表格快速添加批注的代码?

VB怎么编写给表格快速添加批注的代码?想要给表格中的数据添加批注,我们可以使用vb代码来实现,下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

UltraEdit怎么修改选中文本的颜色?

UltraEdit怎么修改选中文本的颜色?UltraEdit编程开发的时候,想要修改文本的颜色,该怎么修改选中文本的颜色呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

ueditor编辑器怎么修改复制粘贴文档源代码的字体?

ueditor编辑器怎么修改复制粘贴文档源代码的字体?ueditor复制来的代码想要编辑一下,该怎么设置代码字体大小呢?下面我们就来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多