Kaip naudotis ADO.NET, nuskaityti ir keisti ?ra?us ? programos Excel darbaknyg? su Visual Basic .NET

Straipsni? vertimai Straipsni? vertimai
Straipsnio ID: 316934 - Per?i?r?ti ?iame straipsnyje minimus produktus.
I?pl?sti visus | Sutraukti visus

?iame puslapyje

Santrauka

?iame straipsnyje aptariama, kaip galite naudoti ADO.NET gauti duomen? i? Microsoft Excel darbaknyg?s, pakeisti duomenis ? esam? darbaknyg?, arba prid?ti duomenis ? nauj? darbaknyg?. Nor?dami atidaryti Excel darbaknyges su ADO.NET, galite naudoti Jet OLE DB teik?jas; ?iame straipsnyje pateikiama informacija, kad jums reikia padaryti kad kai Excel yra tikslin?s duomen? ?altin? galite Jet OLE DB teik?jas.

Kaip naudotis Jet OLE DB teik?jas su Microsoft Excel darbaknyges

Microsoft Jet duomen? baz?s variklis gali gauti duomenis i? kit? duomen? baz?s fail? formatais, pvz., Excel darbaknygi?, diegiama indeksuota Eil?s prieigos metodas (ISAM) tvarkykles. Nor?dami atidaryti i?or?s formatus palaiko Microsoft Jet 4.0 OLE DB teik?jas, nurodykite duomen? baz?s tip?, ? i?pl?stos ypatyb?s ry?io. Jet OLE DB teik?jas palaiko, ?i? duomen? baz?s tip? Microsoft Excel darbaknygi?:
Excel 3.0
Excel 4.0
Excel 5.0
Excel 8,0
Pastaba: Excel 5.0 ?altinio duomen? baz?s tip? naudokite Microsoft Excel 5.0 ir 7.0 (95) darbaknyges ir naudoti Excel 8,0 ?altinio duomen? baz?s tip? Microsoft Excel 8,0 (97) 9,0 (2000) ir 10,0 (2002) darbaknyges. Pavyzd?iai ? tai straipsnyje naudojami Excel darbaknyges Excel 2000 ir 2002 metais Excel formatu.

Jungimosi eilut?

Nor?dami atidaryti Excel darbaknyg? naudodami Jet OLE DB teik?jas, naudoti jungimosi eilut?, kad sintaks? yra tokia:
Provider=Microsoft.Jet.OLEDB.4.0;data Source=C:\Book1.xls;Prat?stas savybi? = "Excel 8,0;HDR = YES; "
Ry?io eilut?je, nurodyti vis? keli? ir failo vard? darbaknyg?s Duomen? ?altinio parametras. Prat?stas ypatyb?s parametras gali b?ti dvi savybes: ? ISAM nekilnojam?j? turt? versija ir nurodyti, ar lenteles ?traukti ypatyb? antra?tes.

Su "Excel" darbaknyges, pirmoje eilut?je diapazone yra antra?t?s eilut?s (arba lauk? pavadinimai) pagal nutyl?jim?. Jei pirmoji sritis n?ra antra?t?s, Nurodykite HDR = Nr. i?pl?stin?s ypatyb?s savo ry?io eilut?. Jei nurodote HDR = ne ry?io eilut?je, Jet OLE DB teik?jas automati?kai ?vardija laukus u? jus (F1 yra pirmas laukas, F2 atstovauja Antrajame lauke, ir t.t.).

Duomen? tipai

Skirtingai nuo tradicini? duomen? baz?s, n?ra tiesioginio b?das nurodyti Excel lentel?s stulpeli? duomen? tipams. Vietoj to, kad OLE DB teik?jas nuskaito a?tuoni? eilu?i? stulpelio atsp?ti duomen? tipo lauko. J?s galite pakeisti eilu?i? skai?ius nuskaityti nurodydami reik?m? tarp vieno (1) ir ?e?iolika (16) d?l to MAXSCANROWS j?s? jungimosi eilut? i?pl?stin?s ypatyb?s parametras.

Lentel?s pavadinimo tvarka

Yra keletas b?d?, kaip galite nurodyti lentel?s (ar diapazonas), Excel darbaknyg?s:
  • Naudoti po dolerio ?enklas (pvz., lapo pavadinimas [Lapas1$] arba [mano darbalapio$]). Darbaknyg?s lentel?s ?iame atvejyje b?du apima vis? naudojamas darbalapio diapazonas.
    Pasirinkite * nuo [Lapas1$]
  • Naudoti ?vairi? su nurodytu pavadinimu (pvz., [MyNamedRange]):
    Pasirinkite * i? [MyNamedRange]
  • Naudoti ?vairi? su konkretus adresas (pvz., [Lapas1$ A1: B10]):
    Pasirinkite * nuo [Lapas1$ A1: B10]
Pastaba: su dolerio ?enklu po darbalapio pavadinimas yra nuoroda kad egzistuoja lentel?. Jei j?s sukuriate nauj? lentel?, kaip buvo aptarta su Kurti naujas darbaknyges ir lenteli?skyri? ?io straipsnio, nenaudokite dolerio ?enklas.

Kaip naudotis "Excel" darbaknyges kaip ADO.NET duomen? ?altinius

Atkurti ?ra?ai

J?s galite priimti ?ra?us i? duomen? baz?s vien? i? dviej? ADO.NET metodai: duomen? rinkinio arba DataReader.

Duomen? rinkinys yra ?ra??, gaut? i? duomen? ?altinio talpyklos. Duomenys duomen? rinkinys yra paprastai labai suma?inta versija kas yra duomen? baz?je. Ta?iau, galite dirbti su juo taip pat, kad dirbate su faktinio duomen? ir lieka atjungtas nuo duomen? baz?. Be to, duomen? paie?ka, taip pat galite naudoti duomen? rinkinio atlikti naujinimo operacij? esamas duomen? baz?s.

Taip pat galite naudoti DataReader gauti duomenis nuo skaitymo, tik srautas yra duomen? baz?s. Naudojant DataReader programa, padidina efektyvum? ir prid?tini? sistemos yra ma??ja nes tik vien? eilut? vienu metu yra kada nors atmintyje. Jei turite didel? kiek? duomenys gauti ir J?s neketinate keisti pagrindin?s duomen? baz?s, DataReader yra geresnis pasirinkimas nei duomen? rinkinys.

Prid?ti ir naujinti ?ra?us

ADO.NET, galite ?terpti ir atnaujinti ?ra?us darbaknyg?je vienu i? trij? b?d?:
  • Tiesiogiai paleisti komand? ?terpti arba atnaujinti ?ra?ai vienas yra laikas. Nor?dami tai padaryti, galite sukurti OLEDbCommand objekto ry?? ir nustatyti jos ypatyb? svarbi? komand? ?terpti ?ra??

    INSERT INTO [Sheet1$] (F1, F2) values ('111', 'ABC')
    arba komand? atnaujinti ?ra?us

    UPDATE [Sheet1$] SET F2 = 'XYZ' WHERE F1 = '111'
    ir tada i?kviesti metodo ExecuteNonQuery .
  • Keisti duomen? rinkin? , galite u?pildyti lentel?/u?klausa i? Excel darbaknyg?s ir tada i?kviesti metodo UpdateDataAdapter spr?sti duomen? rinkin? pakeitimus ? darbaknyg?. Ta?iau, naudoti naujinimo metodas pakeisti rezoliucija turite nustatyti parametrin?s komandos d?l to DataAdapter InsertCommand
    INSERT INTO [Sheet1$] (F1, F2) values (?, ?)
    ir UpdateCommand:
    UPDATE [Sheet1$] SET F2 = ? WHERE F1 = ?
    Parametrizuota INSERT ir UPDATE komandos yra b?tini, nes OleDbDataAdapter nepateikia raktas/index informacija, skirta Excel darbaknyg?ms; Be rakto/rodykl?s laukai, kad CommandBuilder negali automati?kai generuoti ir komandos jums.
  • Eksportuoti duomenis i? kito duomen? ?altinio ? programos Excel darbaknyg? pateikta kad kit? duomen? ?altinis gali b?ti naudojamas su Jet OLE DB teik?jas. Duomen? ?altiniai, kuriuos galite naudoti su Jet OLE DB teik?ju, tokiu b?du yra Tekstini? fail? Microsoft Access duomen? bazes, ir, ?inoma, kit? programos Excel darbaknyg?se. Su vienu ?terpti ? komand?, galite eksportuoti duomenis i? kitos lentel?/u?klausa ? savo darbaknyg?:
    INSERT INTO [Sheet1$] IN 'C:\Book1.xls' 'Excel 8.0;' SELECT * FROM MyTable"
    INSERT INTO reikalauja, kad paskirties lentel?s (arba darbalapio) jau egzistuoja; duomenys yra pridedama prie paskirties lentel?s.

    J?s taip pat gali naudoti PASIRINKITE...? ? darbaknyg? eksportuoti savo lentel?/u?klausa:
    SELECT * INTO [Excel 8.0;Database=C:\Book1.xls].[Sheet1] FROM [MyTable]
    Kai naudojate pasirinkite...?, jei paskirties lentel?je arba darbaknyg? n?ra egzistuoja, ji bus sukurta jums. Jei tokia lentel? jau yra prie?, PASIRINKITE...? komand? yra i?duotas, j?s gausite klaidos.
? Kodo pavyzdysv?liau ?io straipsnio skyriuje rodo kiekvienos i? ?i? po?i?ri? prid?ti ir atnaujinti ?ra?us darbaknyg?je.

Naikinti ?ra?us

Nors Jet OLE DB teik?jas leid?ia jums ?terpti ir atnaujinti ?ra?ai ? programos Excel darbaknyg?, ji neleid?ia naikinimo operacij?. Jei bandysite atlikti vien? ar daugiau ?ra?? naikinimo operacijos, gaunate toliau klaidos prane?imas:
Naikinami duomenys susietoje lentel?je n?ra palaikoma ?i ISAM.
?is apribojimas yra b?tinas gydymas Excel darbaknyg?s kaip duomen? bazi?.

Kurti darbaknyges ir lenteli?

Sukurti lentel? ? Excel darbaknyg?, paleisti CREATE TABLE komanda:
CREATE TABLE Sheet1 (F1 char(255), F2 char(255))
Kai vykdote ?i? komand?, naujame darbalapyje yra sukurtas pavadinimas nurodote komand? lentel?. Jei darbaknyg?s ry?io n?ra, ji taip pat bus sukurta.

? Kodo pavyzdys skirsnyje parodoma, kaip J?s galite naudoti komand? CREATE TABLE sukurti nauj? darbaknyg? ir lentel?je.

?ingsnis po ?ingsnio

Kodo pavyzdys

  1. Prad?ti nauj? Visual Basic .NET Windows programos projekt?.

    Pagal numatytuosius parametrus sukuriama Form1 .
  2. Prid?ti ?e?i RadioButton kontrol? ir tam mygtuko valdikl? Form1.
  3. Pa?ym?ti visus i?rinkimo mygtuko kontrol?s ir nustatykite ypatyb? dydis kaip 200,24.
  4. Meniu Rodymas spustel?kite kodas.
  5. Prid?kite ?i? eilut? ? kod? prad?ios modulis:
    Imports System.Data.OleDb
  6. ?d?kite ?? kod? ? form? klas?s:
    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. Keisti kelias ? m?ginio Access duomen? baz?s Northwind, m_sNorthwind narei kod?, jei reikia.

I?bandykite

  1. Meniu Rodymas nukreipkite ?ymikl? ? Kit? Windows, ir spustel?kite i?vesties Rodyti lang? i?vestis .
  2. Paspauskite F5, kad sukurti ir paleisti program?.
  3. Spustel?kite Create_Workbook ir tada spustel?kite eiti. Create_Workbook proced?ra b?t? vykdoma CREATE TABLE komandas ? dvi naujoms darbaknyg?ms kurti: C:\ExcelData1.xls ir C:\ExcelData2.xls. ExcelData1.xls yra vienas lapas (lentel?s) pavadintas EmployeeData ir ExcelData2.xls yra pavadintas vienas lapas (lentel?) InventoryData. Lenteli? alsuoja ?ra?us.

    Pastaba: metu lik?s ?io bandymo, atidaryti darbaknyges programoje "Excel" i?nagrin?ti rezultatus. Arba spustel?kite Retrieve_Records Nor?dami per?i?r?ti lenteles turin? ? i??jimo lang?, Visual Studio .NET.
  4. Spustel?kite Retrieve_Records ir tada spustel?kite eiti. Retrieve_Records proced?ra ekstraktai ?ra?us i? lenteli? ir rodanti i??jimo langas, pana?us ? ??:
    EmployeeData:
    =============
    AAA       Andrew         12/4/1955
    
    InventoryData:
    ==============
    Cola           200   1.35
    Chips          550   0.89
  5. Spustel?kite Add_Records ir tada spustel?kite eiti. Add_Records ?prastas prideda du ?ra?ai kiekvienos lentel?s:
    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. Spustel?kite Update_Records ir tada spustel?kite eiti. Update_Records ?prastas atnaujina du ?ra?us kiekvienoje darbaknyg?je:
    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. Spustel?kite Update_Individual_Cells ir tada spustel?kite eiti. Update_Individual_Cells ?prastas kei?ia konkre?ius langelius darbalapyje EmployeeData ExcelData1.xls; konkre?iai, l?steli? F3, G3 ir I4 yra atnaujinami.
  8. Spustel?kite Use_External_Source ir tada spustel?kite eiti. Kai naudosite ?terpti...? komand?, Use_External_Source ?prastas prideda ?ra?us i? lentel?s Northwind "Darbuotojai" ? EmployeeData darbalapio ? ExcelData1.xls. Ir Use_External_Source naudoja pasirinkimo...? komand? sukurti nauj? lentel? (ar lapas) ExcelData2.xls, kuriame yra visi ?ra?ai i? Northwind lentel?s "Produktai".

    Pastaba: jei spustel?site Use_External_Source daugiau nei vien? kart?, darbuotoj? s?ra?as bus prid?tas kelis karto, nes pirminis raktas n?ra pripa??stamas ar vykdomas.

Langelio formatavim?

Jei naudojate ADO.NET ?traukti arba atnaujinti ?ra?ai ? esam? darbaknyg?, galite taikyti langeli? formatavim? darbaknyg?, kurioje bus naudojamas su nauj? ar atnaujint? ?r. Kai atnaujinate esam? ?ra?? (arba eilu?i?) yra saugomas darbaknyg?s, langelio formatavim?. Ir kada j?s ?terpti nauj? ?ra?? (arba eilut?s) darbaknyg?je, naujo ?ra?o paveldi formatavim? i? auk??iau eilut?s ji.

?i proced?ra rodoma, kaip galite naudoti formatavimo, darbaknyg? su m?ginio kod?:
  1. Paspauskite F5, kad sukurti ir paleisti m?ginio.
  2. Form1, spustel?kite Create_Workbook ir tada spustel?kite eiti.
  3. Paleidus program? Microsoft Excel ir atidarykite C:\ExcelData1.xls.
  4. Pary?kintu ?rifto stiliaus taikymas langelyje A2.
  5. Taikyti, kursyvas, Pabraukimo stilius su langeliu B2 ir suderinti centras.
  6. Ilgas datos formatas taikomas langelyje C2.
  7. ?ra?yti ir u?daryti C:\ExcelData1.xls.
  8. Form1, spustel?kite Add_Records ir tada spustel?kite eiti.
  9. Excel atsidarykite C:\ExcelData1.xls ir pasteb?ti, kad dviej? nauj? eilu?i? paveld?jo pirmoje eilut?je formatavim?.

Apribojimai

Toliau pateikiami kai kurie apribojimai Jet OLE DB teik?jas atsi?velgiant ? programos Excel duomen? ?altini?:
  • Ç formules ? langelius naudojant ADO.NET.
  • Jet OLE DB teik?jas yra negali pateikti raktas/indeksas informacija apie lenteles Excel darbaknyg?je. D?l ?ios prie?asties, j?s negalite naudoti CommandBuilder automati?kai gauti naujinimus ir ?terpimus ?ra?? Excel darbaknyg?je.

Nuorodos

Nor?dami gauti papildomos informacijos, spustel?kite ?iuos numerius per?i?r?kite straipsnius Microsoft ?ini? baz?je:
316756PRB: Klaida ?vyksta, kai naudojate ADO.NET OLEDbDataAdapter modifikuoti "Excel" darbaknyg?
257819 Kaip naudotis ADO su Excel duomenimis i? Visual Basic arba VBA
306022 Kaip perkelti duomenis ? Excel darbaknyg? naudodami Visual Basic .NET
306023 Kaip perkelti duomenis ? "Excel" Darbaknyg?s naudojant Visual C# .NET
311731 kaip U?klausos ir Rodyti Excel duomenis naudojant ASP.NET, ADO.NET ir Visual Basic .NET
306572 kaip U?klausos ir Rodyti Excel duomenis naudojant ASP.NET, ADO.NET ir Visual C# .NET
278973 PAVYZDYS: ExcelADO parodo, kaip naudotis ADO skaityti ir ra?yti duomenis ? Excel darbaknyges

Savyb?s

Straipsnio ID: 316934 - Paskutin? per?i?ra: 2013 m. bir?elio 7 d. - Per?i?ra: 1.0
Taikoma:
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Rakta?od?iai: 
kbhowtomaster kbmt KB316934 KbMtlt
Atliktas automatinis vertimas
SVARBU: ?is straipsnis i?verstas naudojant ?Microsoft? ma?ininio vertimo programin? ?rang? ir gali b?ti pataisytas naudojant ?Community Translation Framework? (CTF) technologij?. ?Microsoft? si?lo ma?inos i?verstus ir po to bendruomen?s suredaguotus straipsnius, taip pat ?mogaus i?verstus straipsnius siekdama suteikti prieig? prie vis? savo ?ini? baz?s straipsni? daugeliu kalb?. Ma?inos i?verstuose ir v?liau paredaguotuose straipsniuose gali b?ti ?odyno, sintaks?s ir / arba gramatikos klaid?. ?Microsoft? neatsako u? jokius netikslumus, klaidas arba ?al?, patirt? d?l neteisingo turinio vertimo arba m?s? klient? naudojimosi juo. Daugiau apie CTF ?r. http://support.microsoft.com/gp/machine-translation-corrections.
Spustel?kite ?ia, nor?dami pamatyti ?io straipsnio versij? angl? kalba: 316934

Pateikti atsiliepim?

 

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