SPREAD for WPF 4.0J - GcSpreadSheet
データ連結の基本
MESCIUS SPREAD for WPF 4.0J - GcSpreadSheet > 開発者ガイド > データ連結 > データ連結の基本

GcSpreadSheet は、データバインディングをサポートしており、最小限のコードでワークシートにデータを反映できます。ワークシートをデータソースにバインドすると、DataTable やデータコレクションなど、さまざまなソースのデータを自動的に表示できます。

このトピックでは、ワークシートを異なるデータソースにバインドする方法と、新しい行の追加や未バインド列に関する手順を説明します。

GcSpreadSheet では、以下に示す複数の種類のデータソースにワークシートをバインドできます。

GcSpreadSheetは、テーブルをデータソースにバインドすることもできます。

 ワークシートのデータテーブルとの連結

次の手順でワークシートをデータテーブルと連結できます。

  1. あるメソッド(この場合は、GetTable)によって、データテーブルオブジェクトを作成しデータを挿入します。
    コードのコピー
    // データテーブルを作成します。
    public DataTable GetTable()
    {
         DataTable dt = new DataTable();
         dt.Columns.Add("Name");
         dt.Columns.Add("Age");
         DataRow dr = dt.NewRow();
         dr.ItemArray = new object[] { "Jack", 35 };
         dt.Rows.Add(dr);
         dr = dt.NewRow();
         dr.ItemArray = new object[] { "Jimmy", 42 };
         dt.Rows.Add(dr);
         dr = dt.NewRow();
         dr.ItemArray = new object[] { "Sam", 24 };
         dt.Rows.Add(dr);
         dr = dt.NewRow();
         dr.ItemArray = new object[] { "Venka", 55 };
         dt.Rows.Add(dr);
         return dt;
    }                  
    
    コードのコピー
    ' データテーブルを作成します。
    Public Function GetTable() As DataTable
        Dim dt As DataTable = New DataTable()
        dt.Columns.Add("Name")
        dt.Columns.Add("Age")
        Dim dr As DataRow = dt.NewRow()
        dr.ItemArray = New Object() {"Jack", 35}
        dt.Rows.Add(dr)
        dr = dt.NewRow()
        dr.ItemArray = New Object() {"Jimmy", 42}
        dt.Rows.Add(dr)
        dr = dt.NewRow()
        dr.ItemArray = New Object() {"Sam", 24}
        dt.Rows.Add(dr)
        dr = dt.NewRow()
        dr.ItemArray = New Object() {"Venka", 55}
        dt.Rows.Add(dr)
        Return dt
    End Function
    
  2. IDataManagerインタフェースのDataSourceプロパティをデータテーブルオブジェクトに設定してワークシートをデータテーブルと連結します。
    コードのコピー
    // Sheet1のDataTableを連結します。
    DataTable dataTable = GetTable();
    spreadSheet1.Workbook.Worksheets[0].DataManager.DataSource = dataTable;
    spreadSheet1.Workbook.Worksheets[0].Name = "DataTable";       
    
    コードのコピー
    ' Sheet1のDataTableを連結します。
    Dim dataTable As DataTable = GetTable()
    spreadSheet1.Workbook.Worksheets(0).DataManager.DataSource = dataTable
    spreadSheet1.Workbook.Worksheets(0).Name = "DataTable"
    
 ワークシートのデータビューとの連結

データテーブル以外、ワークシートのデータソースをデータビューに設定できます。ワークシートをデータビューと連結するには、データビューを作成してDataSourceプロパティをデータセットから作成したデータビューに設定します。

コードのコピー
string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\Northwind.MDB";
OleDbConnection connection = new OleDbConnection(connectionString);
OleDbCommand command = new OleDbCommand("Select * from Products", connection);
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
DataSet dataset = new DataSet();
adapter.Fill(dataset);

// Sheet2のDataViewを連結します。
DataView dataView = dataset.Tables[0].DefaultView;
spreadSheet1.Workbook.Worksheets[1].DataManager.DataSource = dataView;
spreadSheet1.Workbook.Worksheets[1].Name = "DataView";                        
コードのコピー
Dim connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Northwind.MDB"
Dim connection As OleDbConnection = New OleDbConnection(connectionString)
Dim command As OleDbCommand = New OleDbCommand("Select * from Products", connection)
Dim adapter As OleDbDataAdapter = New OleDbDataAdapter(command)
Dim dataset As DataSet = New DataSet()
adapter.Fill(dataset)

' Sheet2のDataViewを連結します。
Dim dataView As DataView = dataset.Tables(0).DefaultView
spreadSheet1.Workbook.Worksheets(1).DataManager.DataSource = dataView
spreadSheet1.Workbook.Worksheets(1).Name = "DataView"