【sunmoonfire 】在SharePoint中編寫呼叫Excel Services的Filter Consumer WebPart
下面是建立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可以部署到GAC(global assembly cache)中,供多個應用程式共享,我們必須為WebPart增加強命名。強名稱由一個文字格式的名稱,版本號,地區語言資訊(如果提供了的話)和一個公鑰數字簽名組成。
在Visual Studio中為WebPart強命名
- 專案->NewsHeadlinesWebPart 屬性。
- 在專案屬性頁面中,點簽名標籤。
- 在選擇一個強名key檔案處,點新建。
- 在建立強命名key檔案對話方塊中,填寫keypair檔名。取消下面的使用密碼保護我的金鑰的選擇框。
- 關閉專案屬性頁。
實現頭條新聞Filter Consumer WebPart
下面我們將建立一個類實現頭條新聞篩選消費者部件。在程式碼檔案頭部新增下列引用。
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;
引用這些名稱空間可以使我們方便的使用其中的類庫和型別,而不必通過使用完整的名稱空間路徑來訪問。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-374714/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在Laravel 中如何自定義servicesLaravel
- Python呼叫C++編寫的方法PythonC++
- 在 VSCode 中編寫 Markdown 的進階指南VSCode
- Filter在Vue,JS,JQ中的使用FilterVueJS
- java編寫的介面可以呼叫python嗎JavaPython
- aardio 兩行程式碼 呼叫 libxl 讀寫 excel行程Excel
- 在 Laravel 中編寫簡潔的程式碼的策略Laravel
- 在Excel VBA中寫SQL,是一種什麼體驗ExcelSQL
- QT6編寫外部庫並呼叫QT
- 使用Filter介面編寫過濾器解決post亂碼Filter過濾器
- 042.CI4框架CodeIgniter,控制器過濾器Filter配合Services的使用框架過濾器Filter
- 在linux系統中,手動編寫java程式碼,將介面打成jar供其他程式呼叫,實現方式LinuxJavaJAR
- filter在JavaScript中過濾陣列元素FilterJavaScript陣列
- [Go語言寫介面]三、使用介面設計器設計視窗,在程式碼中呼叫,背景編輯器的使用Go
- xlwings:在Excel中整合PythonExcelPython
- 在K8S中,deployment的yaml檔案如何編寫呢?K8SYAML
- java.util.function 中的 Function、Predicate、ConsumerJavaFunction
- 在幕後看看Swift中的Map,Filter和Reduce的實現SwiftFilter
- Excel 開始支援使用 JavaScript 編寫自定義函式ExcelJavaScript函式
- 在Dash中更靈活地編寫回撥函式函式
- 在excel中快速定位到具體的行Excel
- 在Sqlalchemy的查詢中新共享filterSQLFilter
- 在VS2019使用MASM編寫彙編程式ASM
- 使用Excel呼叫ABAP系統的函式Excel函式
- 全新的SharePoint 2019
- 在例項中呼叫 Invoke 型別的類型別
- 在一次滲透中學會編寫Tamper指令碼指令碼
- Q&A:在SQL Server 2005中編寫儲存過程RVSQLServer儲存過程
- 在Dynamics AX 2009中呼叫Crystal Reports
- 在python程式中呼叫java程式碼PythonJava
- Filter 設計模式編碼實踐Filter設計模式
- C語言轉寫成MIPS指令集彙編以及MIPS指令集彙編中函式呼叫時棧的變化C語言函式
- python 讀寫 excelPythonExcel
- 教你在 C 語言上編寫自己的協程
- Filter+Redis解決專案之間呼叫的冪等性FilterRedis
- httpfetch-一款java語言編寫優雅的http介面呼叫元件HTTPJava元件
- SharePoint Server 2016 在原有功能的基礎上增加的內容Server
- Mysql系統變數中 log_error_services | log_filter_internal; log_sink_internal 和 log_error_verbosity | 2 解釋MySql變數ErrorFilter
- Layout的編寫