有时候可能需要截取不同PowerPivot图表,然后组合成一个仪表板供最终用户查看,那在SharePoint如何实现此需求呢?利用PerformancePoint Dashboard Designer设计器虽然也可以界面集成PowerPivot报表,但只能做文件级别的界面集成,并不能单独截取文件的图表,说白了这种界面集成技术是基于Iframe形式的,不使用此工具也可以使用其他方式实现,在技术上并没有任何特别之处。但本文介绍的是一种单独截取文件中的图表技术,主要利用SharePoint 2010 Excel Services Restful API可以轻松实现此功能,以下将详细介绍如何制定个性化的仪表板。
比如需要截取在SharePoint网站中的PowerPivotHealthcareAudit.xlsx的Dashboard的图表,如下图:
Excel Services 中的 REST API 是 Microsoft SharePoint Server 2010 的新增项。利用 REST API,可通过 URL 直接访问工作簿部件或元素。
REST 服务基于两个要求:
•用于定位网络资源的寻址方案
•用于返回这些资源的表示形式的方法
REST 服务以资源为中心。利用 REST,可将数据划分为各种资源,为每个资源给定一个 URL,并对资源实现标准操作,这将启用创建、检索、更新和删除等操作。
Excel Services 的 REST API 通过使用 HTTP 标准中指定的操作,来启用针对 Excel 工作簿的操作。这将允许灵活安全且更加简单的机制访问和操作 Excel Services 内容。
此外,利用 Excel Services REST API 中内置的发现机制,开发人员和用户可通过提供包含有关驻留在特定工作簿中的元素信息的 源以手动或编程方式浏览工作簿的内容。可通过 REST API 访问的一些资源示例为图表、数据透视表和表。
使用 REST API 提供的 Atom 源可更轻松地获取所需的数据。此源包含可遍历的元素,这些元素允许任何代码发现工作簿中存在的元素。
Excel Services 2010 REST API 是一个新的可编程性框架,利用该框架,可以在电子表格中轻松发现数据和对象以及访问这些对象。如果您可以编写 URL,则可使用 REST API。这样非开发人员可以访问 REST API,但还提供了适用于专业开发人员的功能,从而使其成为非常强大的工具。
关于Excel Services 2010 REST API的详细资料可以参考微软官方网站:http://msdn.microsoft.com/zh-cn/library/ff394530(v=office.14).aspx和http://msdn.microsoft.com/zh-cn/library/ff961897(v=office.14).aspx。
在浏览器中输入以下网址可以查看上图的图表元素:http://portal.contoso.uat/sites/cockpit/_vti_bin/ExcelRest.aspx/PowerPivot/PowerPivotHealthcareAudit.xlsx/Model/Charts?$format=atom,具体如下图:
查看第一个图表,可以输入以下网址:http://portal.contoso.uat/sites/cockpit/_vti_bin/ExcelRest.aspx/PowerPivot/PowerPivotHealthcareAudit.xlsx/Model/Charts('Chart%201')?$format=image,如下图:
查看第二个图表,可以输入以下网址:http://portal.contoso.uat/sites/cockpit/_vti_bin/ExcelRest.aspx/PowerPivot/PowerPivotHealthcareAudit.xlsx/Model/Charts('Chart%202')?$format=image,如下图:
查看第三个图表,可以输入以下网址:http://portal.contoso.uat/sites/cockpit/_vti_bin/ExcelRest.aspx/PowerPivot/PowerPivotHealthcareAudit.xlsx/Model/Charts('Chart%203')?$format=image,如下图:
查看第四个图表,可以输入以下网址:http://portal.contoso.uat/sites/cockpit/_vti_bin/ExcelRest.aspx/PowerPivot/PowerPivotHealthcareAudit.xlsx/Model/Charts('Chart%204')?$format=image,如下图:
用以上语法可以获取任何Excel中的单个图表,通过在SharePoint中创建网站页面,组合这些图表为一个仪表板,如下:
创建Excel页面后,可以利用Microsoft SharePoint Designer 2010进行网页设计,如下图:
也可以创建一个Web部件页面,如下图:
在高级模式下编辑文件,如下图:
比如创建一个2行2列的表格,主要利用此表格进行页面布局,如下图:
在HTML工具中插入一个图像,在src中输入需要展现的Excel的图像URL,如下图:
如在src输入http://portal.contoso.uat/sites/cockpit/_vti_bin/ExcelRest.aspx/PowerPivot/PowerPivotHealthcareAudit.xlsx/Model/Charts('Chart%201')?$format=image,以此类推,如下图:
在样式的附加工具栏中可以设置该自定义网页的母版页,可以根据需要选择不同的母版页,如下图:
通过以上简单示例,一个自定义的截图PowerPivot图表的仪表板已制作完成了,根据不同需求,可以制作更为复杂或个性化的页面以满足具体的应用场景。
SharePoint是一个业务协作平台,本身提供了很多强大功能的API, 我们只需要按需利用它的功能就可以实现强大的功能需求,技术是服务于业务,从而创造价值的,技术并非最重要,利用技术去实现业务价值才是最重要的。
本博客为软件人生原创,欢迎转载,转载请标明出处:http://www.cnblogs.com/nbpowerboy/archive/2013/05/28/3104773.html 。演绎或用于商业目的,但是必须保留本文的署名软件人生(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。 |