次の方法で共有


方法 : サーバー上のブックにデータを挿入する

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

プロジェクトの種類

  • ドキュメント レベルのプロジェクト

Microsoft Office のバージョン

  • Excel 2007

  • Excel 2003

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

Excel を実行せずに、ドキュメント レベルの Visual Studio Tools for Office プロジェクトの一部である Microsoft Office Excel ブックのキャッシュにデータを挿入できます。これにより、サーバーに保存されている Excel ブックにデータを挿入できます。

データを挿入するコードは、コンソール アプリケーションや Windows フォーム アプリケーションなど、操作しているドキュメントに関連付けられている Visual Studio Tools for Office メイン プロジェクト アセンブリの外部にある必要があります。

このトピックのコード例の詳細な使用手順については、「チュートリアル : サーバー上のブックへのデータの挿入」を参照してください。

使用例

次のコード例は、最初に AdventureWorksLTDataSet という名前の型指定されたデータセットのインスタンスを作成します。次に、テーブル アダプタを使用して、データセットの Product テーブルに値を設定します。次に、ServerDocument クラスを使用して、Excel ブックにキャッシュされている同じ型指定されたデータセットのインスタンスにアクセスします。さらに、SerializeDataInstance メソッドを使用して、ローカル データセットのデータをキャッシュされたデータセットに書き込みます。

Dim productDataSet As New AdventureWorksDataSet.AdventureWorksLTDataSet()
Dim productTableAdapter As _
    New AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter()

Dim workbookPath As String = System.Environment.GetFolderPath( _
    Environment.SpecialFolder.MyDocuments) & _
    "\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx"
Dim serverDocument1 As ServerDocument = Nothing

Try
    productTableAdapter.Fill(productDataSet.Product)
    Console.WriteLine("The local dataset is filled.")

    serverDocument1 = New ServerDocument(workbookPath)
    Dim dataHostItem1 As CachedDataHostItem = _
        serverDocument1.CachedData.HostItems("AdventureWorksReport.Sheet1")
    Dim dataItem1 As CachedDataItem = dataHostItem1.CachedData("AdventureWorksLTDataSet")

    ' Initialize the worksheet dataset with the local dataset.
    If dataItem1 IsNot Nothing Then
        dataItem1.SerializeDataInstance(productDataSet)
        serverDocument1.Save()
        Console.WriteLine("The data is saved to the data cache.")
    Else
        Console.WriteLine("The data object is not found in the data cache.")
    End If
Catch ex As System.Data.SqlClient.SqlException
    Console.WriteLine(ex.Message)
Catch ex As System.IO.FileNotFoundException
    Console.WriteLine("The specified workbook does not exist.")
Finally
    If Not (serverDocument1 Is Nothing) Then
        serverDocument1.Close()
    End If
    Console.WriteLine(vbLf & vbLf & "Press Enter to close the application.")
    Console.ReadLine()
End Try
AdventureWorksDataSet.AdventureWorksLTDataSet productDataSet = 
    new AdventureWorksDataSet.AdventureWorksLTDataSet();
AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter productTableAdapter =
    new AdventureWorksDataSet.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter();

string workbookPath = System.Environment.GetFolderPath(
    Environment.SpecialFolder.MyDocuments) +
    @"\AdventureWorksReport\bin\Debug\AdventureWorksReport.xlsx";
ServerDocument serverDocument1 = null;

try
{
    productTableAdapter.Fill(productDataSet.Product);
    Console.WriteLine("The local dataset is filled.");

    serverDocument1 = new ServerDocument(workbookPath);
    CachedDataHostItem dataHostItem1 =
        serverDocument1.CachedData.HostItems["AdventureWorksReport.Sheet1"];
    CachedDataItem dataItem1 = dataHostItem1.CachedData["adventureWorksLTDataSet"];

    // Initialize the worksheet dataset with the local dataset.
    if (dataItem1 != null)
    {
        dataItem1.SerializeDataInstance(productDataSet);
        serverDocument1.Save();
        Console.WriteLine("The data is saved to the data cache.");
        Console.ReadLine();
    }
    else
    {
        Console.WriteLine("The data object is not found in the data cache.");
    }
}
catch (System.Data.SqlClient.SqlException ex)
{
    Console.WriteLine(ex.Message);
}
catch (System.IO.FileNotFoundException)
{
    Console.WriteLine("The specified workbook does not exist.");
}
finally
{
    if (serverDocument1 != null)
    {
        serverDocument1.Close();
    }

    Console.WriteLine("\n\nPress Enter to close the application.");
    Console.ReadLine();
}

コードのコンパイル方法

このトピックのコード例は、型指定されたデータセットを定義するクラス ライブラリ プロジェクトにアクセスするコンソール アプリケーションと、Excel 2003 または Excel 2007 のドキュメント レベルのカスタマイズの一部である Excel ブックで使用できるように設計されています。コードの詳細な使用手順については、「チュートリアル : サーバー上のブックへのデータの挿入」を参照してください。

参照

処理手順

チュートリアル : サーバー上のブックへのデータの挿入

方法 : ディスクに書き込まずにドキュメントにデータを挿入する

方法 : サーバー上のブックからキャッシュされたデータを取得する

方法 : サーバー上のブックでキャッシュされたデータを変更する

概念

サーバー上のドキュメント内のデータへのアクセス

DiffGrams (ADO.NET)