取得する ADO.NET を使用し、Visual Basic .NET で Excel ブックのレコードを変更するには、方法

概要

この資料では、Microsoft Excel ブックからデータを取得、既存のブック内のデータを変更または新しいブックにデータを追加するのには、ADO.NET を使用する方法について説明します。ADO.NET での Excel ブックにアクセスするに、Jet OLE DB プロバイダーを使用することができます。この資料では、Excel がデータ ソースであるとき、Jet OLE DB プロバイダーを使用できるようにする必要がある情報を提供します。


Microsoft Excel ブックでは、Jet OLE DB プロバイダーを使用する方法

インストール可能なインデックス付きのシーケンシャル アクセス メソッド (ISAM) ドライバーを Microsoft Jet データベース エンジンは、Excel ブックなど、他の形式のデータベース ファイル内のデータにアクセスできます。Microsoft Jet 4.0 OLE DB プロバイダーでサポートされている外部の形式を開くには、接続の拡張プロパティでデータベースの種類を指定します。Jet OLE DB プロバイダーでは、Microsoft Excel ブックの次のデータベースの種類をサポートしています。
Excel 3.0
Excel 4.0
Excel 5.0
Excel 8.0
: 5.0 および 7.0 (95) の Microsoft Excel ブックを Excel 5.0 のソース データベースの種類を使用して Excel 8.0 のソース データベースの種類を使用して、Microsoft Excel 8.0 (97)、9.0 (2000) および 10.0 (2002) ブックです。この資料の例では、Excel 2000 および Excel 2002 の形式で Excel ブックを使用します。


接続文字列

Jet OLE DB プロバイダーを使用して Excel ブックにアクセスするには、次の構文を持つ接続文字列を使用します。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls です。拡張プロパティを"Excel 8.0; =HDR = YES;"
接続文字列では、 Data Sourceパラメーター内のブックの完全パスとファイル名を指定します。拡張プロパティのパラメーターには、2 つのプロパティが含まれている可能性があります: isam ドライバーのバージョンと、テーブルのヘッダーを含めるかどうかを示すプロパティのプロパティです。

Excel のブックでは、範囲の最初の行は、既定では、ヘッダー行 (またはフィールド名)。最初のセル範囲にヘッダーが含まれていない場合は、HDR を指定することができますなしで、接続文字列の拡張プロパティを = します。HDR を指定する場合 = NO と、Jet OLE DB プロバイダー接続文字列に自動的にフィールドの名前の (f1 キーは、最初のフィールドを表します f2 キーを表し、2 番目のフィールドなど)。

データ型

従来のデータベースとは異なり直接 Excel テーブルの列のデータ型を指定する方法はありません。代わりに、OLE DB プロバイダーは、フィールドのデータ型を推測して列内の 8 行をスキャンします。接続文字列の拡張プロパティの 1 つ (1) と 16 (16)、MAXSCANROWS の設定の間で値を指定してスキャンする行の数を変更することができます。

テーブルの名前付け規則

Excel ブックでは、テーブル (または範囲) を参照することができますいくつかの方法があります。
  • シート名の後ろにドル記号を使用して (たとえば、[Sheet1$] または [自分のワークシート $])。この方法で参照されているブックのテーブルには、使用範囲全体のワークシートが含まれています。
    選択 * から [Sheet1$]
  • (たとえば、[MyNamedRange]) に定義された名前の範囲を使用します。
    選択 * から [MyNamedRange]
  • 特定のアドレスの範囲を使用 (たとえば、[Sheet1$ A1: B10])。
    選択 * から [Sheet1$ A1: B10]
: ワークシート名の後のドル記号は、テーブルが存在することを示します。説明したように、新しいテーブルを作成する場合、
この資料のセクションを新しいブックを作成しテーブルには、ドル記号は使わないでください。

ADO.NET のデータ ソースとして Excel ブックを使用する方法

レコードを取得します。

ADO.NET の 2 つの方法のいずれかを使用してデータベースからレコードを取得することができます: DataReaderまたはデータセットを使用しました。

データセットは、データ ソースから取得したレコードのキャッシュです。データセット内のデータは通常、大幅に削減のデータベースに含まれるものです。しかし、実際のデータを操作し、実際のデータベースから切断しておくことと同じ方法でそれに機能します。データの取得以外にも、基になるデータベースの更新操作を実行するのにはデータセットを使用することもできます。

または、データベースから読み取り専用、前方参照専用のデータのストリームを取得するために、 DataReaderを使用できます。パフォーマンスが向上、 datareaderを使用して、システムのオーバーヘッドは、一度に 1 つだけの行は、メモリにあるためにが減少します。大量データを取得するがあり、基になるデータベースに変更を加える予定がない場合は、 DataReaderをお勧めのデータセットよりも。

追加し、レコードを更新します。

ADO.NET では、挿入し、3 つの方法のいずれかでブックのレコードを更新します。
  • 直接挿入するか、一度に 1 レコードを更新するためのコマンドを実行します。これを行うには、接続で、 OLEDbCommandオブジェクトを作成してレコードを挿入するのには有効なコマンドに、 CommandTextプロパティを設定

    INSERT INTO [Sheet1$] (F1, F2) values ('111', 'ABC')
    またはレコードを更新するコマンド

    UPDATE [Sheet1$] SET F2 = 'XYZ' WHERE F1 = '111'
    ExecuteNonQueryメソッドを呼び出します。
  • テーブルまたはクエリ Excel ブックからに入力して、ブックにデータセットの変更を解決するのには、データ アダプターUpdateメソッドを呼び出すことは、データセットに変更を加えます。ただし、変更のUpdateメソッドを使用する解像度を設定する必要がありますパラメーター化コマンドのデータ アダプターのInsertCommand
    INSERT INTO [Sheet1$] (F1, F2) values (?, ?)
    UpdateCommand:
    UPDATE [Sheet1$] SET F2 = ? WHERE F1 = ?
    OleDbDataAdapterは、ブックを Excel のキーまたはインデックスの情報を提供しないために、パラメーター化された INSERT および UPDATE コマンドが必要ですキーまたはインデックスのフィールドを含まない、これはコマンドを自動的に生成できません。
  • 別のデータからのデータのエクスポートは、Jet OLE DB プロバイダーとその他のデータ ソースを使用することができますされている Excel ブックにソースします。Jet OLE DB プロバイダーでこのような方法で使用できるデータ ソースは、テキスト ファイル、Microsoft Access のデータベース、そしてもちろん、他の Excel ブックです。単一の INSERT INTO コマンドで、ブックに別のテーブルまたはクエリからデータをエクスポートすることができます。
    INSERT INTO [Sheet1$] IN 'C:\Book1.xls' 'Excel 8.0;' SELECT * FROM MyTable"
    挿入する必要がありますが、対象となるテーブル (ワークシート) が既に存在します。データは、対象のテーブルに追加されます。

    選択を使用することも可能性があります。テーブルまたはクエリをブックにエクスポートするには:
    SELECT * INTO [Excel 8.0;Database=C:\Book1.xls].[Sheet1] FROM [MyTable]
    選択を使用すると、.対象となるテーブルまたはブックが存在しない場合に作成します。テーブルが選択する前に既に存在する場合は.コマンドが発行される、エラーが表示されます。
この資料のサンプル コードのセクションでは、それぞれの追加し、ブック内のレコードを更新する方法について説明します。

レコードを削除します。

Jet OLE DB プロバイダーを使用すると、挿入し、Excel ブック内のレコードを更新、削除操作は許可しません。1 つまたは複数のレコードの削除操作を実行しようとすると、次のエラー メッセージが表示されます。
この ISAM では、リンク テーブル内のデータを削除することはサポートされていません。
この制限は、Excel ブックをデータベースとして扱う場合に固有です。

ブックとテーブルを作成します。

Excel ブックにテーブルを作成するには、CREATE TABLE コマンドを実行します。
CREATE TABLE Sheet1 (F1 char(255), F2 char(255))
このコマンドを実行すると、コマンドで指定したテーブルの名前の新しいワークシートが作成されます。ブックの接続が存在しない場合に作成されます。


サンプル コードのセクションでは、新しいブックとテーブルを作成する CREATE TABLE コマンドを使用する方法を示しています。

ステップ バイ ステップ

サンプル コード

  1. 新しい Visual Basic .NET Windows アプリケーションプロジェクトを開始します。

    デフォルトでForm1が作成されます。
  2. 6 つの RadioButton コントロールと Button コントロールをForm1に追加します。
  3. すべてのオプション ボタン コントロールを選択し、 Sizeプロパティを200,24に設定します。
  4. [表示] メニューの [コード] をクリックします。
  5. コード モジュールの先頭に次の行を追加します。
    Imports System.Data.OleDb
  6. フォームクラスに次のコードを挿入します。
    Private m_sConn1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _               "Data Source=C:\ExcelData1.xls;" & _
    "Extended Properties=""Excel 8.0;HDR=YES"""

    Private m_sConn2 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=C:\ExcelData2.xls;" & _
    "Extended Properties=""Excel 8.0;HDR=YES"""

    Private m_sNorthwind = _
    "C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb"

    Private m_sAction As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    RadioButton1.Text = "Create_Workbook"
    RadioButton2.Text = "Retrieve_Records"
    RadioButton3.Text = "Add_Records"
    RadioButton4.Text = "Update_Records"
    RadioButton5.Text = "Update_Individual_Cells"
    RadioButton6.Text = "Use_External_Source"
    Button1.Text = "Go!"
    End Sub

    Private Sub RadioButtons_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles RadioButton1.Click, RadioButton2.Click, RadioButton3.Click, _
    RadioButton4.Click, RadioButton5.Click, RadioButton6.Click
    m_sAction = sender.Text'Store the text for the selected radio button
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Try
    ' Call the associated routine to add/update/modify the workbook.
    Select Case m_sAction
    Case "Create_Workbook" : Create_Workbook()
    Case "Retrieve_Records" : Retrieve_Records()
    Case "Add_Records" : Add_Records()
    Case "Update_Records" : Update_Records()
    Case "Update_Individual_Cells" : Update_Individual_Cells()
    Case "Use_External_Source" : Use_External_Source()
    End Select

    Catch ex As OleDbException
    Dim er As OleDbError
    For Each er In ex.Errors
    MsgBox(er.Message)
    Next
    Catch ex2 As System.InvalidOperationException
    MsgBox(ex2.Message)
    End Try


    End Sub

    Public Sub Create_Workbook()

    ' If the workbooks already exist, prompt to delete.
    Dim answer As MsgBoxResult
    If Dir("C:\ExcelData1.xls") <> "" Or Dir("C:\ExcelData2.xls") <> "" Then
    answer = MsgBox("Delete existing workbooks (C:\ExcelData1.xls and " & _
    "C:\ExcelData2.xls)?", MsgBoxStyle.YesNo)
    If answer = MsgBoxResult.Yes Then
    If Dir("C:\ExcelData1.xls") <> "" Then Kill("C:\ExcelData1.xls")
    If Dir("C:\ExcelData2.xls") <> "" Then Kill("C:\ExcelData2.xls")
    Else
    Exit Sub
    End If
    End If

    '==========================================================================
    ' Create a workbook with a table named EmployeeData. The table has 3
    ' fields: ID (char 255), Name (char 255) and Birthdate (date).
    '==========================================================================
    Dim conn As New OleDbConnection()
    conn.ConnectionString = m_sConn1
    conn.Open()
    Dim cmd1 As New OleDbCommand()
    cmd1.Connection = conn
    cmd1.CommandText = "CREATE TABLE EmployeeData (Id char(255), Name char(255), BirthDate date)"
    cmd1.ExecuteNonQuery()
    cmd1.CommandText = "INSERT INTO EmployeeData (Id, Name, BirthDate) values ('AAA', 'Andrew', '12/4/1955')"
    cmd1.ExecuteNonQuery()
    conn.Close()

    '==========================================================================
    ' Create a workbook with a table named InventoryData. The table has 3
    ' fields: Product (char 255), Qty (float) and Price (currency).
    '==========================================================================

    conn.ConnectionString = m_sConn2
    conn.Open()
    Dim cmd2 As New OleDbCommand()
    cmd2.Connection = conn
    cmd2.CommandText = "CREATE TABLE InventoryData (Product char(255), Qty float, Price currency)"
    cmd2.ExecuteNonQuery()
    cmd2.CommandText = "INSERT INTO InventoryData (Product, Qty, Price) values ('Cola', 200, 1.35)"
    cmd2.ExecuteNonQuery()
    cmd2.CommandText = "INSERT INTO InventoryData (Product, Qty, Price) values ('Chips', 550, 0.89)"
    cmd2.ExecuteNonQuery()
    conn.Close()

    ' NOTE: You can ALTER and DROP tables in a similar fashion.

    End Sub

    Public Sub Retrieve_Records()

    '==========================================================
    'Use a DataReader to read data from the EmployeeData table.
    '==========================================================

    Dim conn1 As New System.Data.OleDb.OleDbConnection(m_sConn1)
    conn1.Open()
    Dim cmd1 As New System.Data.OleDb.OleDbCommand("Select * From [EmployeeData$]", conn1)
    Dim rdr As OleDbDataReader = cmd1.ExecuteReader

    Debug.WriteLine(vbCrLf & "EmployeeData:" & vbCrLf & "=============")
    Do While rdr.Read()
    Debug.WriteLine(System.String.Format("{0,-10}{1, -15}{2}", _
    rdr.GetString(0), rdr.GetString(1), _
    rdr.GetDateTime(2).ToString("d")))
    Loop
    rdr.Close()
    conn1.Close()

    '========================================================
    'Use a DataSet to read data from the InventoryData table.
    '========================================================
    Dim conn2 As New OleDbConnection(m_sConn2)
    Dim da As New OleDbDataAdapter("Select * From [InventoryData$]", conn2)
    Dim ds As DataSet = New DataSet()
    da.Fill(ds)
    Debug.WriteLine(vbCrLf & "InventoryData:" & vbCrLf & "==============")
    Dim dr As DataRow
    For Each dr In ds.Tables(0).Rows'Show results in output window
    Debug.WriteLine(System.String.Format("{0,-15}{1, -6}{2}", _
    dr("Product"), dr("Qty"), dr("Price")))
    Next
    conn2.Close()

    End Sub

    Public Sub Add_Records()

    '==========================================================================
    ' Run an INSERT INTO command to add new records to the workbook.
    '==========================================================================
    Dim conn1 As New System.Data.OleDb.OleDbConnection(m_sConn1)
    conn1.Open()
    Dim cmd As New System.Data.OleDb.OleDbCommand()
    cmd.Connection = conn1
    cmd.CommandText = "INSERT INTO [EmployeeData$] (ID, Name, BirthDate) values ('CCC', 'Charlie', '10/14/48')"
    cmd.ExecuteNonQuery()
    cmd.CommandText = "INSERT INTO [EmployeeData$] (ID, Name, BirthDate) values ('DDD', 'Deloris', '7/19/98')"
    cmd.ExecuteNonQuery()
    conn1.Close()

    '====================================================================
    'Use the InsertCommand object to add new records to the InventoryData
    'table.
    '====================================================================
    Dim conn2 As New OleDbConnection(m_sConn2)
    Dim da As New OleDbDataAdapter("Select * From [InventoryData$]", conn2)
    Dim ds As DataSet = New DataSet()
    da.Fill(ds, "MyExcelTable")

    ' Generate the InsertCommand and add the parameters for the command.
    da.InsertCommand = New OleDbCommand( _
    "INSERT INTO [InventoryData$] (Product, Qty, Price) VALUES (?, ?, ?)", conn2)
    da.InsertCommand.Parameters.Add("@Product", OleDbType.VarChar, 255, "Product")
    da.InsertCommand.Parameters.Add("@Qty", OleDbType.Double).SourceColumn = "Qty"
    da.InsertCommand.Parameters.Add("@Price", OleDbType.Currency).SourceColumn = "Price"

    ' Add two new records to the dataset.
    Dim dr As DataRow
    dr = ds.Tables(0).NewRow
    dr("Product") = "Bread" : dr("Qty") = 390 : dr("Price") = 1.89 : ds.Tables(0).Rows.Add(dr)
    dr = ds.Tables(0).NewRow
    dr("Product") = "Milk" : dr("Qty") = 99 : dr("Price") = 2.59 : ds.Tables(0).Rows.Add(dr)

    ' Apply the dataset changes to the actual data source (the workbook).
    da.Update(ds, "MyExcelTable")
    conn2.Close()

    End Sub

    Public Sub Update_Records()

    '==========================================================================
    ' Run an UPDATE command to change a record in the EmployeeData
    ' table.
    '==========================================================================
    Dim conn1 As New System.Data.OleDb.OleDbConnection(m_sConn1)
    conn1.Open()
    Dim cmd As New System.Data.OleDb.OleDbCommand()
    cmd.Connection = conn1
    cmd.CommandText = "UPDATE [EmployeeData$] " & _
    "SET NAME = 'Aaron', BirthDate = '5/4/1975' WHERE ID = 'AAA'"
    cmd.ExecuteNonQuery()
    conn1.Close()

    '====================================================================
    ' Use the UpdateCommand object to modify records in the InventoryData
    ' table.
    '====================================================================
    Dim conn2 As New OleDbConnection(m_sConn2)
    Dim da As New OleDbDataAdapter("Select * From [InventoryData$]", conn2)
    Dim ds As DataSet = New DataSet()
    da.Fill(ds, "MyInventoryTable")

    ' Generate the UpdateCommand and add the parameters for the command.
    da.UpdateCommand = New OleDbCommand( _
    "UPDATE [InventoryData$] SET Qty = ?, Price=? WHERE Product = ?", conn2)
    da.UpdateCommand.Parameters.Add("@Qty", OleDbType.Numeric).SourceColumn = "Qty"
    da.UpdateCommand.Parameters.Add("@Price", OleDbType.Currency).SourceColumn = "Price"
    da.UpdateCommand.Parameters.Add("@Product", OleDbType.VarChar, 255, "Product")

    ' Update the first two records.
    ds.Tables(0).Rows(0)("Qty") = 1000
    ds.Tables(0).Rows(0)("Price") = 10.1
    ds.Tables(0).Rows(1)("Qty") = 2000
    ds.Tables(0).Rows(1)("Price") = 20.2

    ' Apply the dataset changes to the actual data source (the workbook).
    da.Update(ds, "MyInventoryTable")
    conn2.Close()

    End Sub

    Public Sub Update_Individual_Cells()

    '==========================================================================
    ' Update individual cells on the EmployeeData worksheet;
    ' specifically, cells F3, G3, and I4 are modified.
    '==========================================================================

    ' NOTE: The connection string indicates that the table does *NOT*
    ' have a header row.
    Dim conn As New System.Data.OleDb.OleDbConnection(m_sConn1.Replace("HDR=YES", "HDR=NO"))
    conn.Open()
    Dim cmd As New System.Data.OleDb.OleDbCommand()
    cmd.Connection = conn
    cmd.CommandText = "UPDATE [EmployeeData$F3:G3] SET F1 = 'Cell F3', F2 = 'Cell G3'"
    cmd.ExecuteNonQuery()
    cmd.CommandText = "UPDATE [EmployeeData$I4:I4] SET F1 = 'Cell I4'"
    cmd.ExecuteNonQuery()
    conn.Close()

    End Sub

    Public Sub Use_External_Source()

    ' Open a connection to the sample Northwind Access database.
    Dim conn As New System.Data.OleDb.OleDbConnection( _
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & m_sNorthwind & ";")
    conn.Open()
    Dim cmd As New System.Data.OleDb.OleDbCommand()
    cmd.Connection = conn

    '=======================================================================
    ' Run an INSERT..INTO command on the Northwind database to append
    ' the records from a table/query to an existing table in the Excel
    ' workbook.
    '=======================================================================
    cmd.CommandText = "INSERT INTO [EmployeeData$] IN 'C:\ExcelData1.xls' 'Excel 8.0;'" & _
    "SELECT EmployeeID AS ID, FirstName AS Name, BirthDate FROM Employees"
    cmd.ExecuteNonQuery()

    '==========================================================================
    ' Run a SELECT..INTO command on the Northwind database to insert
    ' all the records from a table/query into a new sheet in the Excel
    ' workbook.
    '==========================================================================
    cmd.CommandText = "SELECT * INTO [Excel 8.0;Database=C:\ExcelData2.xls].[ProductSales]" & _
    "FROM [Product Sales for 1997]"
    cmd.ExecuteNonQuery()

    conn.Close()

    End Sub
  7. 必要な場合は、コードでは、m_sNorthwind メンバーのノースウィンド サンプル Access データベースへのパスを変更します。

お試しください。

  1. [表示] メニューで、その他のウィンドウ] をポイントし、出力「出力」ウィンドウを表示する] をクリックしますします。
  2. ビルドして、プログラムを実行する f5 キーを押します。
  3. [ Create_Workbook ] をクリックし、[移動] をクリックします。Create_Workbookプロシージャは、2 つの新しいブックを作成する CREATE TABLE コマンドを実行: C:\ExcelData1.xls と C:\ExcelData2.xls。EmployeeData という名前の 1 つのシート (テーブル) が含まれています ExcelData1.xls にはと ExcelData2.xls に InventoryData という名前の 1 つのシート (テーブル) が含まれています。テーブルは、レコードが格納されています。

    : このテストの残りの手順、結果を確認する Excel でブックを開きます。または、出力ウィンドウの Visual Studio .NET でテーブルの内容を表示するのにはRetrieve_Recordsをクリックします。
  4. [ Retrieve_Records ] をクリックし、[移動] をクリックします。Retrieve_Recordsプロシージャは、テーブルからレコードを抽出して、次のような[出力] ウィンドウに表示されます。
    EmployeeData:
    =============
    AAA Andrew 12/4/1955

    InventoryData:
    ==============
    Cola 200 1.35
    Chips 550 0.89
  5. [ Add_Records ] をクリックし、[移動] をクリックします。Add_Recordsルーチンは、各テーブルに 2 つのレコードを追加します。
    EmployeeData:
    =============
    AAA Andrew 12/4/1955
    CCC Charlie 10/14/1948
    DDD Deloris 7/19/1998

    InventoryData:
    ==============
    Cola 200 1.35
    Chips 550 0.89
    Bread 390 1.89
    Milk 99 2.59
  6. [ Update_Records ] をクリックし、[移動] をクリックします。Update_Recordsルーチンは、各ブックの 2 つのレコードを更新します。
    EmployeeData:
    =============
    AAA Aaron 5/4/1975
    CCC Charlie 10/14/1948
    DDD Deloris 7/19/1998

    InventoryData:
    ==============
    Cola 1000 10.1
    Chips 2000 20.2
    Bread 390 1.89
    Milk 99 2.59
  7. [ Update_Individual_Cells ] をクリックし、[移動] をクリックします。Update_Individual_Cellsルーチンは、ExcelData1.xls は EmployeeData ワークシートで特定のセルを変更します。具体的には、F3、G3、および i4 の各セルが更新されます。
  8. [ Use_External_Source ] をクリックし、[移動] をクリックします。INSERT を使用すると、.コマンドには、 Use_External_Sourceルーチンは、ExcelData1.xls の EmployeeData ワークシートに、'Northwind 社員' テーブルからレコードを追加します。SELECT を使用して、 Use_External_Source .製品を作成する新しいテーブル (またはシート) で ExcelData2.xls、ノースウィンド データベースからレコードがすべて含まれているテーブル '' にします。

    : 場合Use_External_Sourceを 2 回以上クリックすると、従業員のリストが追加されます何度も主キーが認識されないか、強制するためです。

セルの書式設定

追加または既存のブック内のレコードを更新するのには、ADO.NET を使用する場合は、セルの書式を新規または更新されたレコードを使用するブックを適用できます。ブックの既存のレコード (または行) を更新するときに、セルの書式設定は保持されます。新しいレコードが上の行の書式設定を継承して新しいレコード (または行) をブックに挿入するときです。

次の手順は、サンプル コードでブックの書式設定を使用する方法を示しています。
  1. ビルドしてサンプルを実行する f5 キーを押します。
  2. Form1 に追加 [ Create_Workbook ] をクリックし、[移動] をクリックします。
  3. Microsoft Excel を起動し、C:\ExcelData1.xls を開きます。
  4. セル A2 に太字のフォント スタイルを適用します。
  5. 斜体を適用して、下線のスタイルをセル B2 に中央揃え。
  6. セル C2 に長い日付形式を適用します。
  7. 保存して C:\ExcelData1.xls を閉じます。
  8. Form1 に追加 [ Add_Records ] をクリックし、[移動] をクリックします。
  9. C:\ExcelData1.xls を Excel で開くし、2 つの新しい行が最初の行の書式設定を継承していることに注意してください。

制限事項

Jet OLE DB プロバイダーの Excel データ ソースに関するいくつかの制限は、次のように。
  • ADO.NET を使用してセルに数式を挿入できません。
  • Jet OLE DB プロバイダーは、Excel ブック内のテーブルのキーとインデックス情報を提供することはありません。このため、Excel ブックの更新、レコードの挿入を自動的に生成するのには、これを使うことはできません。

関連情報

詳細については、次の記事番号をクリックしてマイクロソフト サポート技術情報の記事を参照してください。

316756 PRB: ADO.NET OLEDbDataAdapter を使用して Excel ブックを変更するときにエラーが発生します。

257819方法を Visual Basic または VBA からデータを Excel で ADO を使用するには
306022方法を Visual Basic .NET を使用して Excel ブックにデータを転送するには

306023 Visual C# .NET を使用して Excel ブックにデータを転送する方法

311731クエリを実行する方法、および ASP.NET、ADO.NET および Visual Basic .NET を使用して Excel データを表示

306572を照会する方法、および ASP.NET、ADO.NET、および Visual C# .NET を使用して Excel データを表示

278973サンプル: ExcelADO は、ADO を使用して Excel のブックでデータを読み書きする方法を示します



プロパティ

文書番号:316934 - 最終更新日: 2017/02/01 - リビジョン: 2

フィードバック