Atom フィードと HTML フラグメントを使用して範囲を取得する
最終更新日: 2010年4月14日
適用対象: SharePoint Server 2010
このトピックでは、Excel Services の REST API を使用して、範囲にアクセスする 2 つの方法 (ATOM フィードと HTML フラグメント) について説明します。
範囲にアクセスする
Excel Services の REST API では、範囲を取得するための 2 つのメカニズムがサポートされます。1 つ目のメカニズムは、主に、ブックの生データ、つまり、ワークシートの生の数字または値にアプリケーションがアクセスできるように使用されます。2 つ目は、ブラウザー内部から 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 の検出」で説明されている検出メカニズムを使用すると、サーバー (http://<ServerName>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model) のモデル ページで [範囲] Atom フィードをクリックした場合に、ブック内のすべての名前付き範囲を表示するページが表示されます。以下の画面ショットに示されているように、sampleWorkbook.xlsx には 1 つの名前付き範囲である [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 の最後の部分に、atom に設定されている $format と呼ばれるパラメーターが含まれていることがわかります。このパラメーターは、html の値を取ることもできます。atom の値を html に変更すると、URL は、Atom フィードではなく HTML フラグメントを返します。URL の例は次のとおりです。
http://<ServerName>/_vti_bin/ExcelRest.aspx/Docs/Documents/sampleWorkbook.xlsx/model/Ranges('SampleNamedRange')?$format=html
Internet Explorer では、次のようなページが表示されます。
注意
この HTML は、IFRAME 内で直接使用できます。また、ECMAScript (JavaScript、JScript) 内で使用して、よりシームレスな操作環境を作成できます。