在SharePoint中編寫調(diào)用Excel Services的Filter Consumer方法
本文將舉例說明如何在wssv3中創(chuàng)建一個Filter consumer WebPart 來顯示頭條新聞。這些頭條新聞內(nèi)容依賴于地理區(qū)域的篩選提供者WebPart中用戶的選擇。頭條新聞WebPart將通過調(diào)用Microsoft Excel Services從一個Excel工作簿中得到。
下面是創(chuàng)建filter consumer WebPart的五大步驟
在Visual Studio 2005中創(chuàng)建一個web control library項(xiàng)目。
添加到Microsoft.SharePoint.dll的引用。
設(shè)置assembly的版本號。
為assembly添加強(qiáng)命名。
編寫頭條新聞filter consumer webpart的代碼。
在Visual Studio 2005中創(chuàng)建一個web control library項(xiàng)目
創(chuàng)建一個filter consumer WebPart最簡單的方式是套用Visual Studio 2005的自定義Web控件模板。
下面是創(chuàng)建的步驟:
文件->新建->項(xiàng)目,出現(xiàn)新建項(xiàng)目對話框。
在項(xiàng)目類型中,選擇C#,選擇Windows類別。
在模板選擇中,選擇web控件庫。
為項(xiàng)目指定一個名稱NewsHeadlinesWebPart 。
指定保存的位置,確定?,F(xiàn)在,項(xiàng)目中包含一個名為WebCustomControl1.cs的代碼文件。
在解決方案瀏覽器中右擊該文件,選重名名。將該文件重命名為NewsHeadlinesWebPart.cs。
添加必要的程序集的引用
我們將要編寫的頭條新聞篩選消費(fèi)者WebPart是要從Microsoft.SharePoint.WebPartPages.WebPart類繼承而來。因此,必須添加Windows SharePoint Services的程序集;由于使用到了Excel Services,還要引用Excel Services的程序集,以便允許使用其中的類。
下面的步驟是展示了如何直接連接到Excel Web Serivces庫。之所以如此是因?yàn)轭^條新聞WebPart運(yùn)行域SharePoint環(huán)境中,這與使用SOAP通過HTTP訪問Web service的方式不同。在我們的這種場景下直接連接可以提供更高的性能和安全性,并允許我們的頭條新文WebPart可以工作在所有的SharePoint拓?fù)浣Y(jié)構(gòu)下。而當(dāng)我們創(chuàng)建獨(dú)立的Web應(yīng)用程序(Web應(yīng)用程序并不運(yùn)行在SharePoint中)時,實(shí)際上是真正用到Web service的接口。關(guān)于何時選擇使用SOAP方式通過HTTP訪問,何時直接連接到Excel Web Services DLL,您可以參考這篇MOSS SDK文章:Loop-back SOAP Calls and Direct Linking
如果Visual Studio運(yùn)行在office SharePoint Server 2007服務(wù)器上,請以下面的步驟進(jìn)行引用:
項(xiàng)目->添加引用,出現(xiàn)添加引用對話框。
點(diǎn)擊.NET標(biāo)簽,選擇Excel Web Service 組件(Microsoft.office.Excel.Server.WebServics.dll)。接著向下滾動,找到Windows SharePoint Services組件(Microsoft.SharePoint.dll),按住Ctrl鍵,再選擇。
確定,完成引用的添加。
如果Visual Studio與office SharePoint Server 2007不在同一臺機(jī)器上,我們需要從一臺裝有office SharePoint Server 2007的機(jī)器上拷貝該文件到我們的開發(fā)環(huán)境所在機(jī)器的項(xiàng)目文件夾下。默認(rèn)情況下,Microsoft.SharePoint.dll和Microsoft.office.Excel.Server.WebServics.dll位于裝有SharePoint的機(jī)器的以下目錄中:
C:\Program Files\Common Files\Microsoft Shared\web server\extensions12ISAPI
拷貝過來后,將這兩個文件添加到引用中。
添加到本地拷貝的程序集的引用
項(xiàng)目->添加引用,出現(xiàn)添加引用對話框。
點(diǎn)擊瀏覽,導(dǎo)航到放Windows SharePoint Services和Excel Web Service程序集文件的目錄
選中Microsoft.SharePoint.dll 和Microsoft.office.Excel.Server.WebServices.dll 文件。
確定,完成引用的添加。
如果要使Excel Web Service正常工作,還需要添加到System.Web.Services程序集的引用:
項(xiàng)目->添加引用,出現(xiàn)添加引用對話框。
點(diǎn)擊.NET標(biāo)簽,選擇System.Web.Services 組件。
確定,完成引用的添加。
設(shè)置WebPart程序集的版本號
默認(rèn)情況下,自定義Web控件項(xiàng)目的AssemblyVersion屬性設(shè)為每次重新編譯時自動增加。Web部件頁通過Web.config文件中注冊的版本號來識別WebPart。如果AssemblyVersion屬性設(shè)為每次重新編譯時自動增加,當(dāng)我們把WebPart導(dǎo)入到Web部件頁后又重新編譯了該WebPart,就會因?yàn)檎也坏匠绦蚣鲥e了。避免字增的方法就是手工指定一個版本號。
為WebPart程序集手工指定版本號
項(xiàng)目->NewsHeadlinesWebPart 屬性。
在項(xiàng)目屬性頁面中,點(diǎn)應(yīng)用程序標(biāo)簽。
點(diǎn)程序集信息
在程序集信息對話框中,設(shè)定版本為1.0.0.0
確定,保存。
關(guān)閉項(xiàng)目屬性頁。
為WebPart程序集進(jìn)行強(qiáng)命名
為了使我們的WebPart可以部署到GAC(global assembly cache)中,供多個應(yīng)用程序共享,我們必須為WebPart增加強(qiáng)命名。強(qiáng)名稱由一個文本格式的名稱,版本號,地區(qū)語言信息(如果提供了的話)和一個公鑰數(shù)字簽名組成。
在Visual Studio中為WebPart強(qiáng)命名
項(xiàng)目->NewsHeadlinesWebPart 屬性。
在項(xiàng)目屬性頁面中,點(diǎn)簽名標(biāo)簽。
在選擇一個強(qiáng)名key文件處,點(diǎn)新建。
在創(chuàng)建強(qiáng)命名key文件對話框中,填寫keypair文件名。取消下面的使用密碼保護(hù)我的密鑰的選擇框。
關(guān)閉項(xiàng)目屬性頁。
實(shí)現(xiàn)頭條新聞Filter Consumer WebPart
下面我們將創(chuàng)建一個類實(shí)現(xiàn)頭條新聞篩選消費(fèi)者部件。在代碼文件頭部添加下列引用。
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;
引用這些命名空間可以使我們方便的使用其中的類庫和類型,而不必通過使用完整的命名空間路徑來訪問。
相關(guān)文章

網(wǎng)絡(luò)工程師必備的6款配置文件編輯神器:替代Notepad++!
本期文章介紹了六種網(wǎng)工必備工具,這些工具是網(wǎng)絡(luò)工程師日常工作中必不可少的,也是那些立志成為網(wǎng)絡(luò)工程師的人應(yīng)該熟悉的2026-04-13
首個版本v1.111已上線! VS Code開啟周更狂飆模式
026年3月10日,微軟宣布將Visual Studio Code(VS Code)更新節(jié)奏從月更提速至周更,并發(fā)布首個周更版本v1.1112026-03-11
AI直接調(diào)試瀏覽器! VS Code重大更新發(fā)布
還在手動打開瀏覽器、點(diǎn)擊按鈕、檢查控制臺報錯?太累了!現(xiàn)在,最新的VS Code 1.110中AI可以直接調(diào)試瀏覽器2026-03-10
今天帶大家來共同學(xué)習(xí)VC++6.0無法正常運(yùn)行怎么辦?下面就是詳細(xì)完整的操作步驟,快跟小編一起來學(xué)習(xí)一下2026-02-27
vscode調(diào)試c代碼始終找不到exe可執(zhí)行文件的詳細(xì)及解決辦法
在 VS Code 中調(diào)試 C++ 項(xiàng)目時,常見報錯:“無法啟動調(diào)試會話:找不到可執(zhí)行文件”,這個問題問題通常是由于環(huán)境配置不當(dāng)、缺少編譯步驟、路徑設(shè)置錯誤、或是launch.json2026-02-27
vscode入門! 小白都能看懂的VS Code保姆級級使用教程
相對于其它前端工具來說,VSCode顯得更加的流暢,今天就將我的學(xué)習(xí)經(jīng)歷和大家分享一下,希望可以幫助到有需要的人2026-02-27
2026年真正值得裝、用得上、不雞肋的 VSCode 插件,其實(shí)沒那么多——挑10個“神級”不難,但得是每天打開就用、關(guān)掉就難受的那種2026-02-10
VS Code 和 VSCodium怎么選? vscode 和 vscodium之間的區(qū)別
咱們今天就來聊聊 Visual Studio Code (VS Code) 和 VSCodium的相似與區(qū)別,詳細(xì)請看下文介紹2026-01-10
如何啟用.NET Framework3.5? 一鍵安裝net3.5解決軟件依賴問題
你是否曾在安裝某些軟件時遇到過“需要.NET Framework 3.5”的提示?實(shí),只需要幾步簡單的操作,你就可以輕松解決這個問題2025-10-28
VS Code中Java擴(kuò)展代碼重構(gòu)功能的使用詳解
在軟件開發(fā)過程中,重構(gòu)是一個非常重要的環(huán)節(jié),重構(gòu)可以提高代碼的可讀性、可維護(hù)性和可擴(kuò)展性,使代碼更加健壯和易于理解,本文將介紹如何使用 VSCode 進(jìn)行 Java 代碼重構(gòu)2025-09-20





