使用 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 命名区域发现

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 区域

使用 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)中使用以创建更加顺畅的体验。

使用 HTML 的 Excel Services REST 发现 Get 范围

请参阅

概念

Excel Services REST API 的资源 URI