天天看點

SharePoint 2013 Excel Services ECMAScript 示例之明日限行

  前言:最近遇到一個“明日限行”的功能,北京的交通啊,這個不在今天讨論範圍内,暫不吐槽,想想代碼開發,還要寫WebPart部署,很麻煩,而且部署伺服器,需要上司審批,想繞過這個麻煩事兒,就想到用戶端了,不過我這次沒有用用戶端對象模型,反而采用Excel Services服務,當然隻是一個小嘗試,效果還算可以吧。

一、效果展示,如下圖

SharePoint 2013 Excel Services ECMAScript 示例之明日限行

  簡單說明一下,你不需要顯示下面Excel的時候,可以寫下腳本隐藏,或者把WebPart最小化也可以,不一定非要展示出來。但是,作為和ECMA JavaScript腳本互動的基礎,這個Excel是必須添加在頁面上的。

二、配置思路

  • 配置一個受信任的文檔庫,用于釋出使用Excel Services的Excel文檔,并上傳明日限行文檔;
  • 在需要添加限行的頁面上,添加Excel Web Access部件,并且選取我們上傳的名為“TomorrowLimit.xslt”的Excel文檔;
  • 在頁面上添加内容編輯器部件,用來添加讀取Excel Web Access部件内Excel文檔的ECMA JavaScript腳本。

三、配置步驟

1、建立一個Excel,命名為“TomorrowLimit.xslt”,如下圖;

SharePoint 2013 Excel Services ECMAScript 示例之明日限行

2、上傳到配置好信任位置[1]的文檔庫中,在首頁添加“Excel Web Access部件”;

SharePoint 2013 Excel Services ECMAScript 示例之明日限行

3、添加内容編輯器,并添加腳本,選擇編輯源可以直接添加HTML代碼;

SharePoint 2013 Excel Services ECMAScript 示例之明日限行

4、添加好後儲存,即可看到效果;

SharePoint 2013 Excel Services ECMAScript 示例之明日限行

  如上圖,可以将下面的“Excel Web Access部件”最小化隐藏,上面的明日限行部件,放到網站需要展示的位置即可。

四、ECMAScript(JavaScript、JScript)簡介

  在 SharePoint Server 2010 中,Excel Services 添加了對 JavaScript 的支援。利用 Excel Services 中的 JavaScript 對象模型,開發人員可自動執行和自定義頁面上的 Excel Web Access Web 部件控件并與之互動。

  通過使用 JavaScript 對象模型,可生成混合 Web 應用程式和其他內建解決方案,它們可與頁面上一個或多個 Excel Web Access Web 部件控件進行互動。此外,還使您能夠向工作簿添加更多功能并為其編寫代碼。

代碼段

SharePoint 2013 Excel Services ECMAScript 示例之明日限行
SharePoint 2013 Excel Services ECMAScript 示例之明日限行
1 <div id='resultdiv'></div>
 2 <script type="text/javascript">
 3 if (window.attachEvent) 
 4 {
 5     window.attachEvent("onload", Page_Load);
 6 } 
 7 else 
 8 {
 9     window.addEventListener("DOMContentLoaded", Page_Load, false);
10 }
11 
12 function Page_Load() 
13 {
14     Ewa.EwaControl.add_applicationReady(GetEwa);
15 }
16 
17 function GetEwa()
18 {
19     om =Ewa.EwaControl.getInstances().getItem(0);
20     var range = om.getActiveWorkbook().getRange("Limit", 0, 0, 6, 2);
21     range.getValuesAsync(0, Limit, range);
22 }
23 
24 function Limit(asyncResult)
25 {
26     var values = asyncResult.getReturnValue();
27     var week = new Date().getDay();
28     var value;
29     switch(week)
30     {
31         case 0:
32             value = values[week + 1][1];
33             break;
34         case 1:
35             value = values[week + 1][1];
36             break;
37         case 2:
38             value = values[week + 1][1];
39             break;
40         case 3:
41             value = values[week + 1][1];
42             break;
43         case 4:
44             value = values[week + 1][1];
45             break;
46         default:
47             value = null;
48             break;
49     }
50     if(value == null)
51     {
52         document.getElementById('resultdiv').innerText = "明日不限号";
53     }
54     else
55     {
56         document.getElementById('resultdiv').innerText = "明日限号:" + value;
57     }
58 }
59 </script>      

View Code

備注

  [1]信任位置:SharePoint在釋出好Excel Services服務以後,設定信任位置的文檔庫,才可以使用Excel Services服務,設定方式可以參考參考文獻第一項。

參考文獻

SharePoint 2013 配置Excel Services

http://www.cnblogs.com/jianyus/p/3326304.html

Excel Services ECMAScript(JavaScript、JScript)

http://msdn.microsoft.com/zh-cn/library/ee556354(v=office.14).aspx

博文推薦:
    SharePoint 2013 WebPart 管理工具分享[開源]
    基于SharePoint 2013的論壇解決方案[開源]
    SharePoint 2013 學習基礎系列入門教程
    SharePoint 2013 圖文開發系列之門教程
    SharePoint Designer 學習系列入門教程
特:如果有SharePoint項目,歡迎郵件聯系我,Email:[email protected]

繼續閱讀