使用 Atom 源和 HTML 片段获取范围
上次修改时间: 2010年4月14日
适用范围: SharePoint Server 2010
本主题介绍两种通过使用 Excel Services 中的 REST API 访问区域的方法 - Atom 源和 HTML 片段。
访问区域
Excel Services 中的 REST API 支持两种获取区域的机制。第一种机制主要用于使应用程序访问工作簿的原始数据(即,工作簿中的原始数字或值)。第二种机制旨在从浏览器内部获取 HTML 片段。
如 在 Excel Services REST API 中发现主题中所述,指向使用发现的模型页的 REST URL 是:
http://<ServerName>/_vti_bin/ExcelRest.aspx/<DocumentLibrary>/<FileName>/model
因此,对于文件名为 sampleWorkbook.xlsx 保存到 http://<ServerName>/Docs/Documents/sampleWorkbook.xlsx 中的工作簿,下面是指向该模型页的 URI:
http://<ServerName>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model
使用 在 Excel Services REST API 中发现中描述的发现机制时,如果您在服务器的模型页 (http://<ServerName>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model) 上单击"区域"Atom 源,则将显示一个用于显示工作簿中的所有命名区域的页面。sampleWorkbook.xlsx 包含一个命名区域 SampleNamedRange,如以下屏幕快照中所示:
重要说明 |
---|
您也可以指定任意区域,而不仅仅是由发现返回的区域。冒号":"必须替换为"|"。例如,使用"A1|G5"而不使用"A1:G5"。 |
备注
不支持如"?"和"#"这样的字符。若要正确引用包含特殊字符的工作表名称,则向带特殊字符的工作表引用公式时,基本原则是"了解 Excel 客户端执行什么操作",并遵循相应示例。
Excel Services REST 命名区域发现
使用 Atom 源访问区域
如果您在区域发现页上单击"SampleNamedRange",您将导航至以下 URL:
http://<ServerName>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model/Ranges('SampleNamedRange')?$format=atom
请注意,在 Internet Explorer 中,得到的页面就像是一个错误,如以下屏幕快照中所示。
使用 Atom 发现 Excel Services REST 区域
Internet Explorer 无法显示单个条目 Atom 源项。但通过查看页面的源,将显示源项包含的 XML:
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns:x="https://schemas.microsoft.com/office/2008/07/excelservices/rest" xmlns:d="https://schemas.microsoft.com/ado/2007/08/dataservice" xmlns:m="https://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<title type="text">SampleNamedRange</title>
<id>https://ServerName/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model/Ranges('SampleNamedRange')</id>
<updated>2010-01-20T21:28:10Z</updated>
<author>
<name />
</author>
<link rel="self" href="https://ServerName/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model/Ranges('SampleNamedRange')?$format=atom" title="SampleNamedRange" />
<category term="ExcelServices.Range" scheme="https://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<x:range name="SampleNamedRange">
<x:row>
<x:c>
<x:fv>Performance</x:fv>
</x:c>
<x:c>
<x:v>26</x:v>
<x:fv>26</x:fv>
</x:c>
<x:c />
</x:row>
<x:row>
<x:c>
<x:fv>Employment</x:fv>
</x:c>
<x:c>
<x:v>42</x:v>
<x:fv>42</x:fv>
</x:c>
<x:c />
</x:row>
<x:row>
<x:c>
<x:fv>Earnings And Job Quality</x:fv>
</x:c>
<x:c>
<x:v>22</x:v>
<x:fv>22</x:fv>
</x:c>
<x:c />
</x:row>
... XML truncated for brevity.
<x:row>
<x:c>
<x:fv>Innovation Assets</x:fv>
</x:c>
<x:c>
<x:v>43</x:v>
<x:fv>43</x:fv>
</x:c>
<x:c />
</x:row>
<x:row>
<x:c />
<x:c>
<x:fv>State</x:fv>
</x:c>
<x:c />
</x:row>
</x:range>
</content>
</entry>
源项包含表示区域内部的数据的 XML。以下是您感兴趣的 XML 元素:
<range> 区域元素。表示返回的区域的容器。
<row> 行元素。表示区域中的每一行。
<c> 单元格元素。表示行中的每个单元格。
<fv> 格式化的值元素。表示由 Excel 格式化的值。如果该值属于工作簿中的类型字符串,则格式化的值元素是 <c> 下的唯一元素。
<v> 值元素。表示一个数字值。如果单元格中的该值是数字而不是字符串,则该值元素包含相应信息。
使用 XML 更易于获取 Excel 区域中的数据,以便可以将此类数据用在您的应用程序中。
使用 HTML 访问区域
当您使用 Atom 源通过 URL 访问命名区域时,注意到 URL 的最后部分包含一个名为 $format 的参数,该参数设置为 atom。该参数也可以采用 html 值。如果将 atom 值更改为 html,则 URL 将返回 HTML 片段而不是 Atom 源。以下是 URL 的一个示例:
http://<ServerName>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model/Ranges('SampleNamedRange')?$format=html
在 Internet Explorer 中,该页面与下图类似。
备注
此 HTML 可直接在 IFRAME 中使用,也可在 ECMAScript(JavaScript、JScript)中使用以创建更加顺畅的体验。