使用 Atom 馈送和 HTML 段落获取范围
本主题介绍了使用 Excel Services REST API 访问区域的两种方式,即 Atom 馈送和 HTML 代码片段。
注意
Excel Services REST API 适用于本地 SharePoint 和 SharePoint 2016。 对于 Office 365 教育版、商业版和企业版帐户,请使用属于 Microsoft Graph 终结点的 Excel REST API。
访问区域
Excel Services 中的 REST API 支持两种获取范围的机制。 第一种主要用于使应用程序获取工作簿的原始数据,即工作簿中的原始数字或值。 第二种用于从浏览器内部获取 HTML 片段。
如 Excel Services REST API 中的发现 主题中所述,使用发现的模型页面的 REST URL 为:
http://<ServerName>/_vti_bin/ExcelRest.aspx/<DocumentLibrary>/<FileName>/model
因此,对于保存到 http://<ServerName>/Docs/Documents/sampleWorkbook.xlsx
且文件名为 sampleWorkbook.xlsx 的工作簿,模型页面的 URI 如下:
http://<ServerName>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model
使用 Excel Services REST API 中的发现中所述的发现机制,如果在服务器上的模型页上单击“ 范围 Atom 源”, ( http://
<ServerName>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model
) ,则会显示一个页面,其中显示了工作簿中的所有命名区域。 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="http://schemas.microsoft.com/office/2008/07/excelservices/rest" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservice" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<title type="text">SampleNamedRange</title>
<id>http://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="http://ServerName/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model/Ranges('SampleNamedRange')?$format=atom" title="SampleNamedRange" />
<category term="ExcelServices.Range" scheme="http://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> range Range 元素。 表示返回的范围的容器。
<row> 行 行元素。 表示范围中的每一行。
<c> 单元格元素。 表示行中的每个单元格。
<fv> 格式化的值元素。 表示 Excel 格式化的值。 如果值的类型为工作簿中的字符串,则带格式的值元素是 c> 下<的唯一元素。
<v> 值元素。 表示数值。 如果单元格中的值为数字而不是字符串,值元素将包含该信息。
使用 XML 是从 Excel 范围中获取数据的一种更简单的方式,因此您可以将其用于您的应用程序中。
使用 HTML 访问区域
如果查看 URL 以使用 Atom 源访问命名区域,请注意,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,也可以用于JavaScript,以提供更顺畅的体验。