サーバーに保存してプログラムを使用したアクセスを準備する
この例では、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))
Args [1] と args [2] の値は、Web フォームまたはコマンド ラインから指定できます。
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 [1] は名前付き範囲の名前です。 この例では「 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 です。
関連項目
タスク
リファレンス
Microsoft.Office.Excel.Server.WebServices