**摘要:**了解如何使用 Excel Services REST API 访问 Microsoft SharePoint Server 2010 上的 Microsoft Excel 工作簿数据。
上次修改时间: 2012年9月12日
适用范围: Excel Services | Office 2010 | SharePoint Foundation 2010 | SharePoint Server 2010 | Visual Studio | Visual Studio 2008 | Visual Studio 2010
**供稿人:**Steve Hansen,Grid Logic (Visual Studio MVP)
![]() Excel Services REST API 是 Excel Services 的一项新功能,可利用此功能使用统一资源定位器 (URL) 地址来访问 Microsoft Excel 工作簿数据。通过使用 REST API,您可以从存储在 SharePoint Server 2010 上的工作簿中检索资源(例如,范围、图表、表和数据透视表)。 REST API 提供了使用 Excel 数据的灵活方式。除了使用 REST API 直接链接到 Excel 资源之外,您还可以以编程方式进行基本 HTTP 调用以在外部程序中使用 Excel 数据。 ![]() 本节中的代码演示如何使用简单的控制台应用程序示例来使用 Excel Services REST API。 在 REST API 中,代码是可移植的。没有要分发的程序集,您的项目中不需要任何其他引用,并且您无需了解其他对象模型。只要您了解用于访问资源的 URL 约定,您就只需生成 URL,然后使用标准 HttpWebRequest(该链接可能指向英文页面) 对象调用它。 下面的代码示例源于一个简单控制台应用程序。该示例演示一个基本模式,用于通过使用 REST API 检索 SharePoint Server 2010 上的 Excel 工作簿中的资源。该代码示例将从存储在名为"Shared Documents"的文档库中的名为"Invoice.xlsx"的工作簿中检索一个名为"CustomerName"的范围。
请注意,GetRangeValue() 函数包含一个用于生成资源的 URL 的半硬编码字符串。若要使用此代码,请将 <server> 占位符替换为 SharePoint 环境的地址。 ![]() 本节演示如何正确构造 REST URL 以从 Excel Services 中的资源中获取信息。 使用 REST API 的关键在于了解如何构造资源的正确 URL。Excel Services 中的 REST URL 包含三个必需部分和一个可选部分。 第一个部分是 ExcelRest.aspx 页的位置。ExcelRest.aspx 是 Excel Services REST API 的入口点。第二个部分是与 ExcelRest.aspx 页相对的工作簿位置。第三个部分是工作簿内请求的资源的路径。例如,如果 SharePoint Server 的 URL 为 http://intranet.contoso.com,并且您希望从存储在 Shared Documents 中的名为"Invoice.xlsx"的工作簿中检索一个名为"CustomerName"的范围,则此 URL 应如下所示。 http://intranet.contoso.com/_vti_bin/ExcelRest.aspx/Shared%20Documents/Invoice.xlsx/model/Ranges('CustomerName') URL 的可选部分是一个格式参数。EST API 可通过两种方式之一来发送范围值。默认情况下,REST API 会将范围信息作为 HTML 代码返回,如图 1 所示。
图 1. Internet Explorer 窗口中的 HTML 片段
![]() 如果您不指定格式参数,则它将为您请求范围资源时返回的格式。建议您明确请求格式以避免混淆。若要指定格式,请将 ?$format=html 追加到 URL 的末尾。例如,前面的 CustomerName 示例如下所示。 http://intranet.contoso.com/_vti_bin/ExcelRest.aspx/Shared%20Documents/Invoice.xlsx/model/Ranges('CustomerName')?$format=html REST API 还可以 Atom 联合格式返回范围信息。如图 2 所示,Internet Explorer 并不会直接访问此格式。但是,如果您在 Internet Explorer 中右键单击,然后单击"查看源文件",则可查看返回的数据。
图 2. Internet Explorer 窗口中的 XML 片段
![]() 虽然无法在 Internet Explorer 等应用程序中立即使用 Atom 格式,但由于该格式是数据的 XML 表示形式,因此它更适用于编程使用和操作。若要以 Atom 格式请求范围资源,请将 append ?$format=atom 追加到 URL 的末尾。例如,若要以 Atom 格式检索 CustomerName 示例,请使用下面的代码。 http://intranet.contoso.com/_vti_bin/ExcelRest.aspx/Shared%20Documents/Invoice.xlsx/model/Ranges('CustomerName')?$format=atom 如果您无法确定有哪些给定格式的可用资源,则 REST API 将包含一个发现机制。若要查看这一点,您可使用一个名为模型页的特殊页。例如,若要查看 Invoice 工作簿的模型页,则 URL 如下所示。 http://intranet.contoso.com/_vti_bin/ExcelRest.aspx/Shared%20Documents/Invoice.xlsx/model/
图 3. Internet Explorer 中的模型页
![]() 然后,如果您单击"范围",则模型将显示工作簿中范围名称的列表。
图 4. Internet Explorer 中的模型页中的范围名称列表
![]() 您可通过单击查看范围来检测其值。但是,模型视图会在您到达无法在 Internet Explorer 中直接显示的范围级别时指定一个 Atom 格式。当您找到要在其他位置嵌入或使用的资源时,请复制 Internet Explorer 的地址栏中的 URL,然后将此 URL 粘贴到所需位置。 |
![]() ![]() 观看视频(该链接可能指向英文页面) (00:09:03) ![]() 关于作者 Steve Hansen(该链接可能指向英文页面) 就职于 Grid Logic,他是 Microsoft Office 的 MVP 参与者。Steve 是 Grid Logic 的 Office System 架构师,他已经为 Microsoft 制作了许多(50 个以上)有关 Office 开发的视频。 Steve 撰写了多篇与 Office 开发相关的白皮书,并编著了两本书 - Mastering Excel 2000 Premium Edition(《Excel 2000 从入门到精通》)和 Mastering Excel 2003 Programming with VBA(《Excel 2003 与 VBA 编程从入门到精通》),这两本书由 Sybex 出版。 |