次の方法で共有


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

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

対象: このトピックの情報は、Excel 2007 と Excel 2010 のドキュメント レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。

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

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

使用例

次のコード例は、最初に 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 のドキュメント レベルのカスタマイズの一部である Excel ブック。 ブックは、データを含む AdventureWorksLTDataSet という名前のキャッシュされたデータセットを備えています。

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

参照

処理手順

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

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

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

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

概念

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

DiffGrams (ADO.NET)