Způsob použití objektů ADO.NET k načtení a upravte záznamy v sešitu aplikace Excel pomocí jazyka Visual Basic.NET

Překlady článku Překlady článku
ID článku: 316934 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje, jak lze pomocí objektu ADO.NET načíst data ze sešitu aplikace Microsoft Excel upravit data v existujícím sešitu, nebo Přidání dat do nového sešitu. Přístup k sešitům aplikace Excel s objekty ADO.NET, můžete použít zprostředkovatele Jet OLE DB; Tento článek obsahuje informace, které potřebujete Pokud je cílový zdroj dat aplikace Excel můžete zprostředkovatele Jet OLE DB.

Použití zprostředkovatele Jet OLE DB S sešity aplikace Microsoft Excel

Databázový stroj Microsoft Jet přístup k datům v jiných formáty souborů databáze, jako jsou například sešity aplikace Excel prostřednictvím instalovatelných indexovat Sekvenční ovladače ISAM (přístup metoda). K otevření externí formáty podporované aplikací Microsoft Jet 4.0 OLE DB Provider, určete typ databáze v Rozšířené vlastnosti připojení. Podporuje Jet OLE DB Provider následující typy databází pro sešity aplikace Microsoft Excel:
Excel 3.0
Aplikace Excel 4.0
Excel 5.0
Aplikace Excel 8.0
POZNÁMKA:: Použijte typ zdrojové databáze Excel 5.0 pro Microsoft Excel 5.0 a 7.0 (95) sešity a použití aplikace Excel 8.0 zdrojové databáze typu Microsoft Aplikace Excel 8.0 (97) 9.0 (2000) a 10,0 sešity (2002). Příklady v tomto článek pomocí sešitů aplikace Excel ve formátu aplikace Excel 2000 a Excel 2002.

Připojovací řetězec

Chcete-li sešit aplikace Excel pomocí zprostředkovatele Jet OLE DB, použijte následující příkaz: připojovací řetězec, který má následující syntaxi:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Rozšířené vlastnosti = "Excel 8.0;HDR = ANO. "
V řetězci připojení zadejte úplnou cestu a název v sešitu Zdroj dat parametr. Na Rozšířené vlastnosti Parametr může obsahovat dvě vlastnosti: vlastnost ISAM verze a vlastnosti, které chcete označit, zda patří k tabulkám záhlaví.

Sešity aplikace Excel je první řádek v oblasti záhlaví řádek (nebo názvy polí) ve výchozím nastavení. Pokud první oblast neobsahuje záhlaví, můžete určit HDR = NO v rozšířené vlastnosti v připojovací řetězec. Pokud určit HDR = NO v připojovacím řetězci zprostředkovatele Jet OLE DB můžete automaticky názvy polí (F1 představuje první pole, F2 představuje druhé pole a tak dále).

Datové typy

Na rozdíl od tradiční databázi neexistuje žádný přímý způsob určení datové typy pro sloupce v tabulkách aplikace Excel. Místo toho kontroluje zprostředkovatele OLE DB osm řádků ve sloupci odhad datový typ pro pole. Můžete změnit počet řádků skenování zadáním hodnoty mezi jedna (1) a 16 (šestnáct) pro MAXSCANROWS nastavení rozšířených vlastností připojovací řetězec.

Zásady vytváření názvů tabulky

Existuje několik způsobů můžete odkaz na tabulku (nebo oblast) v Sešit aplikace Excel:
  • Následuje znak dolaru (například název listu [List1$] nebo [Moje $ list]). Tabulky sešitu, který se odkazuje v tomto způsobem zahrnuje celé použité oblast listu.
    Vyberte * z [List1$]
  • Oblast s definovaným názvem (například použít [MyNamedRange]):
    Vyberte * z [MyNamedRange]
  • Použijte rozsah s konkrétní adresu (například [List1$ A1: B10]):
    Vyberte * z [List1$ A1: B10]
POZNÁMKA:: Údaj dolaru za název listu že existuje v tabulce. Chcete-li vytvořit novou tabulku, jak je popsáno v Vytváření nových sešitů a tabulekčásti tohoto článku, nepoužívejte znak dolaru.

Jak sešity aplikace Excel použít jako objekty ADO.NET datových zdrojů

Načíst záznamy

Načtení záznamů z databáze pomocí dvou přístupy v objektech ADO.NET: s Objekt DataSet nebo Objektu DataReader.

A Objekt DataSet je mezipaměť ze zdroje dat načtených záznamů. Data v na Objekt DataSet je obvykle velmi snižuje verzi co je v databázi. Však můžete pracovat s ním stejným způsobem jako s skutečné data a zůstat odpojen od skutečné databáze. Kromě načítání dat můžete použít také Objekt DataSet k provedení operace aktualizace na základní databáze.

Můžete použít také Objektu DataReader Načtení proudu jen pro čtení, pouze pro předávání dat z databáze. Při použití Objektu DataReader zvyšuje výkon programu a režie systému je snížení protože pouze jeden řádek po řádku je stále v paměti. Máte-li velké množství data načíst a nemáte v úmyslu provést změny v podkladových databáze, Objektu DataReader je lepší volbou než Objekt DataSet.

Přidávat a aktualizovat záznamy

S objekty ADO.NET, můžete vložit a aktualizovat záznamy v sešitě jedním ze tří způsobů:
  • Přímo spustit příkaz Vložit nebo aktualizovat záznamy v čas. Chcete-li to provést, můžete vytvořit OLEDbCommand objekt na připojení a nastavení jeho Vlastnosti CommandText Vlastnost platný příkaz Vložit záznamy

    INSERT INTO [Sheet1$] (F1, F2) values ('111', 'ABC')
    nebo příkaz pro aktualizaci záznamů

    UPDATE [Sheet1$] SET F2 = 'XYZ' WHERE F1 = '111'
    a zavolejte ExecuteNonQuery Metoda.
  • Proveďte změny Objekt DataSet máte vyplněn tabulku či dotaz ze sešitu aplikace Excel a zavolejte Aktualizace Metoda Vlastnost DataAdapter, pro řešení změn DataSet zpět do sešitu. Však použít Aktualizace Metoda pro změnu rozlišení je nutné nastavit parametry příkazů u prvku DataAdapter Událost InsertCommand
    INSERT INTO [Sheet1$] (F1, F2) values (?, ?)
    a Událost UpdateCommand:
    UPDATE [Sheet1$] SET F2 = ? WHERE F1 = ?
    Příkazy parametrizované INSERT a UPDATE jsou povinné, protože Třídy OleDbDataAdapter neposkytne informace klíče nebo indexu pro sešity aplikace Excel; bez klíče nebo indexu pole, CommandBuilder nelze generovat automaticky příkazy pro vás.
  • Exportovat data z jiného zdroje dat do sešitu aplikace Excel, který je k dispozici že ostatní zdroje dat lze použít zprostředkovatele Jet OLE DB. Data Zahrnout zdroje, které lze použít s Jet OLE DB Provider tímto způsobem Textové soubory databáze aplikace Microsoft Access a samozřejmě jiné sešity aplikace Excel. Jedním příkazem INSERT INTO export dat z jiné tabulky nebo dotazu do sešitu:
    INSERT INTO [Sheet1$] IN 'C:\Book1.xls' 'Excel 8.0;' SELECT * FROM MyTable"
    Vložit do vyžaduje, aby cílové tabulky (nebo listu) již Existují; data připojena cílové tabulky.

    Můžete také použít VYBERTE...DO tabulky nebo dotazu exportovat do sešitu:
    SELECT * INTO [Excel 8.0;Database=C:\Book1.xls].[Sheet1] FROM [MyTable]
    Použijete-li vybrat...DO cílové tabulky nebo sešit, není-li neexistuje, bude vytvořena automaticky. Pokud existuje před VYBERTE...DO vydání příkazu, zobrazí se chyba.
Na Ukázkový kódpozději v tomto článku ukazuje každý z těchto přístupů k přidání a Aktualizujte záznamy v sešitu.

Odstranit záznamy

Ačkoli Jet OLE DB Provider umožňuje vkládání a aktualizace záznamy v sešitu aplikace Excel neumožňuje operace odstranění. Pokud se pokusíte Chcete-li provést operaci odstranění na jeden nebo více záznamů, obdržíte následující chybová zpráva:
Odstranění dat v propojené tabulce není podporuje tento ISAM.
Toto omezení je vlastní ošetření sešitů aplikace Excel jako databáze.

Vytvoření tabulky a sešitů

Chcete-li vytvořit tabulku do sešitu aplikace Excel, spusťte CREATE TABLE příkaz:
CREATE TABLE Sheet1 (F1 char(255), F2 char(255))
Spustíte-li tento příkaz, je vytvořen nový list s název tabulky, které určíte v příkazu. Pokud sešit pro připojení neexistuje, příliš bude vytvořena.

Na Ukázkový kód části jsou popsány jak příkaz CREATE TABLE můžete použít k vytvoření nového sešitu a Tabulka.

Podrobné

Ukázkový kód

  1. Spuštění nového jazyka Visual Basic.NET Aplikace systému Windows projekt.

    Formulář1 ve výchozím nastavení je vytvořen.
  2. Šest RadioButton ovládací prvky a ovládací prvek tlačítko Přidat Formulář1.
  3. Vyberte všechny ovládací prvky komponenty RadioButton a nastavte Velikost Vlastnost 200,24.
  4. V Zobrazení nabídky, klepněte na tlačítko Kód.
  5. Přidejte následující řádek začátkem kódu modul:
    Imports System.Data.OleDb
  6. Vložte následující kód do Formulář Třída:
    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. Upravit cestu k ukázkové databázi aplikace Access, Northwind, pro člena m_sNorthwind v kódu, pokud je to nutné.

Vyzkoušejte jej

  1. V Zobrazení příkaz Ostatní oknaa klepněte na tlačítko Výstup zobrazení Výstup okno.
  2. Stisknutím klávesy F5 sestavit a spustit program.
  3. Klepněte na tlačítko Create_Workbook a potom klepněte na tlačítko Přejít. Na Create_Workbook postup spustí příkazy CREATE TABLE k vytvoření dvou nových sešitů: C:\ExcelData1.xls a C:\ExcelData2.xls. ExcelData1.xls obsahuje jeden list (tabulka) s názvem EmployeeData a ExcelData2.xls obsahuje jeden list (tabulku) s názvem InventoryData. Tabulky jsou vyplněny záznamy.

    POZNÁMKA:: Na každé zbývající krok v této zkoušce sešity otevřete v aplikaci Excel Přezkoumat výsledky. Klepněte na tlačítko Retrieve_Records Zobrazit obsah tabulky v Výstup Okno aplikace Visual Studio.NET.
  4. Klepněte na tlačítko Retrieve_Records a potom klepněte na tlačítko Přejít. Na Retrieve_Records Postup extrahuje záznamy z tabulek a zobrazí je v Výstup okno, podobně jako tento:
    EmployeeData:
    =============
    AAA       Andrew         12/4/1955
    
    InventoryData:
    ==============
    Cola           200   1.35
    Chips          550   0.89
  5. Klepněte na tlačítko Add_Records a potom klepněte na tlačítko Přejít. Na Add_Records Rutina přidá dva záznamy pro každou tabulku:
    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. Klepněte na tlačítko Update_Records a potom klepněte na tlačítko Přejít. Na Update_Records Rutina aktualizuje dva záznamy v každém sešitu:
    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. Klepněte na tlačítko Update_Individual_Cells a potom klepněte na tlačítko Přejít. Na Update_Individual_Cells Rutina upravuje určité buňky na listu EmployeeData ExcelData1.xls; Konkrétně jsou aktualizovány buňkách F3, G3 a I4.
  8. Klepněte na tlačítko Use_External_Source a potom klepněte na tlačítko Přejít. Při použití INSERT..DO příkazu Use_External_Source Rutina přidá záznamy z tabulky Northwind "Zaměstnanci" do list EmployeeData v ExcelData1.xls. A, Use_External_Source používá SELECT...DO příkazu Vytvořit novou tabulku (nebo list) v ExcelData2.xls, který obsahuje všechny záznamy z tabulky Northwind "Produkty".

    POZNÁMKA:Pokud klepnete na tlačítko Use_External_Source více než jednou, seznam zaměstnanců bude připojen více časy, protože není rozpoznán nebo vynutit primární klíč.

Formátování buněk

Používáte-li ADO.NET přidat nebo aktualizovat existující záznamy sešit, můžete použít formátování v sešitu, který bude použit se buňky nové nebo aktualizované záznamy. Pokud aktualizujete existující záznam (nebo řádek) v formátování buňky sešitu zachována. A při vložení nového záznamu (nebo řádek) v sešitu, zdědí formátování z řádku nad nový záznam ji.

Následující postup ukazuje, jak můžete použít formátování sešit s ukázkový kód:
  1. Stisknutím klávesy F5 sestavit a spustit ve vzorku.
  2. Na formulář1 klepněte na tlačítko Create_Workbook a potom klepněte na tlačítko Přejít.
  3. Spusťte aplikaci Microsoft Excel a otevřete C:\ExcelData1.xls.
  4. Použití tučného písma stylu buňky A2.
  5. Kurzíva, podtržení stylu buňky B2 a zarovnání centrum.
  6. Formát dlouhého data do buňky C2.
  7. Uložte a zavřete C:\ExcelData1.xls.
  8. Na formulář1 klepněte na tlačítko Add_Records a potom klepněte na tlačítko Přejít.
  9. C:\ExcelData1.xls otevřít v aplikaci Excel a Všimněte si, že dva nové řádky mají zděděná formátování z prvního řádku.

Omezení

Zde jsou některá omezení Jet OLE DB Provider v hlediska zdrojů dat v aplikaci Excel:
  • Nelze vložit v buňkách pomocí vzorce OBJEKTY ADO.NET.
  • Jet OLE DB Provider není schopen poskytnout klíče nebo indexu. informace pro tabulky v sešitu aplikace Excel. Z tohoto důvodu nelze použít CommandBuilder automatické generování, aktualizace a vkládání záznamů v sešitu aplikace Excel.

Odkazy

Další informace získáte klepnutím na tlačítko naleznete v následujících článcích znalostní báze společnosti Microsoft:
316756PRB: Při použití objektů ADO dojde k chybě.Třídy OLEDbDataAdapter NET Upravit sešit aplikace Excel
257819 Použití objektů ADO s daty aplikace Excel z aplikace Visual Basic nebo VBA
306022 Jak přenést Data do sešitu aplikace Excel pomocí jazyka Visual Basic.NET
306023 Jak přenést Data do aplikace Excel Sešit pomocí aplikace Visual C#.NET
311731 Jak Dotaz a Data aplikace Excel zobrazit pomocí prostředí ASP.NET (ADO).NET a Visual Basic .NET
306572 Jak Dotaz a Data aplikace Excel zobrazit pomocí prostředí ASP.NET (ADO).NET a Visual C# .NET
278973 VZOREK: ExcelADO ukazuje způsob použití objektu ADO ke čtení a zápisu dat v sešitech aplikace Excel

Vlastnosti

ID článku: 316934 - Poslední aktualizace: 19. května 2011 - Revize: 9.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Klíčová slova: 
kbhowtomaster kbmt KB316934 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:316934

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com