前言:最近遇到一個“明日限行”的功能,北京的交通啊,這個不在今天讨論範圍内,暫不吐槽,想想代碼開發,還要寫WebPart部署,很麻煩,而且部署伺服器,需要上司審批,想繞過這個麻煩事兒,就想到用戶端了,不過我這次沒有用用戶端對象模型,反而采用Excel Services服務,當然隻是一個小嘗試,效果還算可以吧。
一、效果展示,如下圖
簡單說明一下,你不需要顯示下面Excel的時候,可以寫下腳本隐藏,或者把WebPart最小化也可以,不一定非要展示出來。但是,作為和ECMA JavaScript腳本互動的基礎,這個Excel是必須添加在頁面上的。
二、配置思路
- 配置一個受信任的文檔庫,用于釋出使用Excel Services的Excel文檔,并上傳明日限行文檔;
- 在需要添加限行的頁面上,添加Excel Web Access部件,并且選取我們上傳的名為“TomorrowLimit.xslt”的Excel文檔;
- 在頁面上添加内容編輯器部件,用來添加讀取Excel Web Access部件内Excel文檔的ECMA JavaScript腳本。
三、配置步驟
1、建立一個Excel,命名為“TomorrowLimit.xslt”,如下圖;
2、上傳到配置好信任位置[1]的文檔庫中,在首頁添加“Excel Web Access部件”;
3、添加内容編輯器,并添加腳本,選擇編輯源可以直接添加HTML代碼;
4、添加好後儲存,即可看到效果;
如上圖,可以将下面的“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 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] |