前言:Excel Services 中的 REST API 是 Microsoft SharePoint Server 2010 的新增项。利用 REST API,可通过 URL 直接访问工作簿部件或元素。
一、REST 服务基于两个要求:
用于定位网络资源的寻址方案
用于返回这些资源的表示形式的方法
二、REST URL基本URI的三个组成部分是:
REST aspx 页 URI:http://<ServerName>/_vti_bin/ExcelRest.aspx
工作簿位置:/Docs/Documents/sampleWorkbook.xlsx
资源位置:/model/Ranges('nameOfTheNamedRange')
三、API简单应用及示例:
1、单元格展示:
例:http://URL/_vti_bin/ExcelRest.aspx/DocLib1/ExcelTest.xlsx/model/Ranges('A1')
附:完整的Excel
2、图表展示
例:特别说明” %E5%9B%BE%E8%A1%A8%201”==”图表 1”的意思,经过Url编码
http://URL/_vti_bin/ExcelRest.aspx/DocLib1/ExcelTest.xlsx/Model/Charts('%E5%9B%BE%E8%A1%A8%201')
附:原来的Excel截屏
3、单元格范围展示(Excel如上图,范围选择不会展示出图表)
例:http://URL/_vti_bin/ExcelRest.aspx/DocLib1/ExcelTest.xlsx/Model/Ranges('A1|M5')
特:Sheet2!A1%7CM5,标下划线部分,可以选择工作表,半角感叹号分隔;
4、单元格范围展示并设置一个单元格的值
例:(原Excel如上面Excel所示)http://URL/_vti_bin/ExcelRest.aspx/DocLib1/ExcelTest.xlsx/Model/Ranges('Sheet2!A1%7CN5')?Ranges('Sheet2!N2')=88&Ranges('Sheet2!N3')=98
四、返回atom的XML格式
通过返回的XML文件,我们可以在代码中进行下一步的Coding,可以基于一个发布的Excel文件进行统计、展示等。
例:($format=atom参数)
http://URL/_vti_bin/ExcelRest.aspx/DocLib1/ExcelTest.xlsx/Model/Ranges('Sheet2!A1%7CN5')?Ranges('Sheet2!N2')=88&Ranges('Sheet2!N3')=98&$format=atom
右键查看源文件:
特:由于完整的XML代码所占篇幅太多,所以只截取当前屏幕,敬请见谅!
五、Excel Services REST API 中不受支持的功能
以下是 Excel Services REST API 中当前不支持或未使用的多个重要功能的部分列表:
· 无浮动图。如果一个范围包含图,并且您通过 REST 请求该范围,则只会获取该范围。
· 无迷你图,无图标条件格式。当前不受支持。
· 无像素(理想 EWA)。REST 生成的 HTML 与 Excel Web Access 生成的 HTML 很相似。但 Excel Services REST API 无法访问 Excel Web Access 可访问的所有级联样式表 (CSS) 元素。Excel Services REST API 返回一个 HTML 片段。此 HTML 片段必须是自包含的。
· 表中不存在差异。当以 Atom 的形式请求表以查看单元格或数据是列标题、总计还是常规数据时,表中不会产生任何差异。也就是说,不存在指定单元格或数据是标题、总计还是常规数据的差异。将平等对待表中的所有表单元格。
· URL 大小限制。URL 大小将限制在约 2000 个字符。这意味着,如果工作簿中有大量参数,则可能无法设置所有参数。特别是在工作簿位于文件夹结构的较低位置时会出现此情况。
· 特殊字符。不支持如“?”和“#”这样的字符。若要正确引用包含特殊字符的工作表名称,则向带特殊字符的工作表引用公式时,基本原则是“了解 Excel 客户端执行什么操作”,并遵循相应示例。
结束语:
本文为参考MSDN的sdk文档,做的简单示例,如有疑问请参考附后的参考文献;对于Excel Services REST API了解了一下,推翻了以前认为Excel Services只能Web展示的印象,其实还可以基于这个功能,简单开发一些新的应用。
参考文献:
Excel Services REST API 概述
http://msdn.microsoft.com/zh-cn/library/ee556842(v=office.14).aspx
Excel Services REST API 的资源 URI
http://msdn.microsoft.com/zh-cn/library/ff394530(v=office.14).aspx