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


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

一、效果展示,如下圖

clip_image001

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

二、配置思路

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

三、配置步驟

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

clip_image002

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

clip_image003

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

clip_image004

4、添加好后保存,即可看到效果;

clip_image005

  如上圖,可以將下面的“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 部件控件進行交互。此外,還使您能夠向工作簿添加更多功能並為其編寫代碼。

代碼段

 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 ECMAScriptJavaScriptJScript

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM