サーバーに保存して、プログラムによるアクセスを準備する
最終更新日: 2010年4月14日
適用対象: SharePoint Server 2010
この例では、Excel ブックをサーバーに保存して、プログラムによるアクセスを準備する方法について説明します。次の手順を実行します。
名前付き範囲を含むブックを作成します。
信頼できる SharePoint ライブラリの場所にブックを保存します。
注意
既に SharePoint ドキュメント ライブラリを作成し、それを信頼できる場所にしたことを前提としています。この詳細については、「[方法] 場所を信頼する」を参照してください。
Excel Web Services SetCellA1 メソッドを使用して、ワークシート、名前付き範囲、およびセル値の値をプログラムによって指定します。値は、次に示す args [1] と args [2] のように引数として渡されます。
status = xlServices.SetCellA1(sessionId, String.Empty, args[1], args[2]);
status = xlServices.SetCellA1(sessionId, String.Empty, args(1), args(2))
Web フォームまたはコマンド ラインを使用して、args [1] と args [2] の値を指定できます。
GetSnapshot.exe http://MyServer002/MyTrustedDocumentLibrary/TestMyParam.xlsx MyParam28 > MySnapshot.xlsx
この例では、args [1] は MyParam、args [2] は 28 であり、GetSnapshot.exe は作成するアプリケーションの名前です。サンプル プログラムを見つけるには、「[方法] ブック全体またはスナップショットを取得する」を参照してください。
名前付き範囲を作成するには
Excel を起動します。
Sheet1 を MyParamSheet に名前変更します。
セル B2 に、「20」と入力します。
セル B3 に、「=2+B2」と入力します。
セル B3 を太字にします。
セル B2 を名前付き範囲にします。
リボンで [数式/文字] タブをクリックし、次にセル B2 をクリックして選択します。
[定義された名前] グループで、[名前の定義] をクリックします。
[新しい名前] ダイアログ ボックスの [名前] テキスト ボックスで、「MyParam」と入力します。
ローカル ドライブ上の任意の場所にブックを保存します。ブックに "TestMyParam.xlsx" という名前を付けます。
SharePoint ライブラリに保存するには
[ファイル] メニューで、[保存と送信]、[SharePoint に保存] の順にクリックします。
[SharePoint に保存] ダイアログ ボックスで、[発行オプション] をクリックします。
[発行オプション] ダイアログ ボックスの [表示] タブで、[ブック全体] が選択されていることを確認します。
[パラメータ] をクリックします。
[追加] をクリックします。
[パラメーターの追加] リストで、MyParam が表示されます。[MyParam] チェック ボックスをオンにします。
[OK] をクリックします。[パラメーター] リストに MyParam が表示されていることを確認します。
[OK] をクリックします。
[SharePoint に保存] ダイアログ ボックスで、[名前を付けて保存] をクリックします。
[名前を付けて保存] ダイアログ ボックスで、[ブラウザー上の Excel で開く] チェック ボックスをオフにします。
[ファイル名] ボックスで、このブックを保存する、信頼できる SharePoint ドキュメント ライブラリへのパスを入力します。たとえば、「http://MyServer002/MyDocumentLibrary/TestParam.xlsx」と入力します。
[保存] をクリックします。
プログラムによって値を指定するには
Excel Web Services における SetCellA1 メソッドの署名は次のとおりです。
public void SetCellA1 ( string sessionId, string sheetName, string rangeName, Object cellValue, Out Status[] status )
Public Sub SetCellA1(ByVal sessionId As String, ByVal sheetName As String, ByVal rangeName As String, ByVal cellValue As Object, Out ByVal status() As Status) End Sub
SetCellA1 メソッドに対するワークシート、名前付き範囲、およびセル値の値を次のように設定します。
// Set a value into a cell. status = xlSrv.SetCellA1(sessionId, String.Empty, args[1], args[2]);
上記のコードでは、
args [2] は、名前付き範囲の名前です。この例では、MyParam です。
args [2] は、セルに設定する値です。値を設定するセルは、MyParam と呼ばれる args [1] の名前付き範囲です。
コマンド ラインを使用する場合、次のように引数に渡すことができます。
GetSnapshot.exe http://MyServer002/MyTrustedDocumentLibrary/TestMyParam.xlsx MyParam 28 > MySnapshot.xlsx
ブックのスナップショットを生成する場合、次のように表示されます。
セル B2 (名前付き範囲 MyParam を含む) には、プログラムによって入力された値 "28" が表示されます。
セル B3 には、新たに計算された値 "30" が表示されます。
セル B3 には、元の数式 "=2+B2" は表示されません。
セル B3 には、太字フォントの書式が保持されます。
注意
スナップショットの詳細については、「[方法] ブック全体またはスナップショットを取得する」を参照してください。SetCellA1 メソッドの詳細については、Excel Web Services のリファレンス ドキュメントを参照してください。Web サービスの名前空間は、Microsoft.Office.Excel.Server.WebServices です。
関連項目
タスク
[ウォークスルー] Excel Web Services を使用してカスタム アプリケーションを開発する
参照
Microsoft.Office.Excel.Server.WebServices