כיצד להשתמש ADO.NET כדי לאחזר ולשנות רשומות בחוברת עבודה של Excel באמצעות Visual Basic .NET

תרגומי מאמרים תרגומי מאמרים
Article ID: 316934 - View products that this article applies to.
הרחב הכל | כווץ הכל

On This Page

תקציר

מאמר זה מתאר כיצד ניתן להשתמש ADO.NET כדי לאחזר נתונים מחוברת עבודה של Microsoft Excel, לשנות נתונים בחוברת עבודה קיימת, או הוספת הנתונים לחוברת עבודה חדשה. כדי לגשת חוברות עבודה של Excel עם ADO.NET, באפשרותך להשתמש Jet ספק OLE DB; מאמר זה מספק את המידע הדרוש לך זאת ניתן להשתמש Jet ספק OLE DB כאשר Excel מהווה את מקור נתוני היעד.

כיצד להשתמש ספק ה-Jet OLE DB עם חוברות עבודה של Microsoft Excel

מנגנון מסד הנתונים Microsoft Jet יכול לגשת לנתונים אחרות תבניות קובץ של מסד נתונים, כגון חוברות עבודה של Excel, באמצעות אינדקס להתקנה מנהלי בשיטה Access (ISAM) רציפים. כדי לפתוח תבניות חיצוניים הנתמכות על-ידי Microsoft הזרקת 4.0 ספק מסדי נתונים של OLE, ציין את סוג מסד הנתונים ב- מאפיינים מורחבים עבור החיבור. תומך ב- Jet ספק ה-OLE DB סוגי מסד הנתונים הבאים עבור חוברות עבודה של Microsoft Excel:
Excel 3.0
Excel 4.0
Excel 5.0
Excel 8.0
הערה: השתמש בסוג מסד נתונים של Excel 5.0 מקור עבור Microsoft Excel 5.0 ו- 7.0 חוברות עבודה ושימוש (95) Excel 8.0 מקור סוג מסד נתונים של Microsoft Excel 8.0 (97), 9.0 (2000) ו- 10.0 חוברות עבודה (2002). הדוגמאות זו המאמר שימוש בחוברות עבודה של Excel בתבנית Excel 2000 ו- Excel 2002.

מחרוזת חיבור

כדי לגשת אל חוברת עבודה של Excel על-ידי שימוש ב- Jet ספק ה-OLE DB, להשתמש מחרוזת חיבור עם התחביר הבא:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;מאפיינים מורחבים = "Excel 8.0;HDR = כן; "
במחרוזת החיבור, ציין את הנתיב המלא ושם הקובץ עבור חוברת העבודה בפרמטר מקור נתונים . הפרמטר מאפיינים מורחבים עשויים להכיל שני מאפיינים: מאפיין ISAM עבור גירסה והמאפיין כדי לציין אם לבצע או לא לכלול טבלאות כותרות.

עם חוברות עבודה של Excel, השורה הראשונה בטווח מהווה את כותרת שורה (או שמות שדות) כברירת מחדל. אם הטווח הראשון אינו מכיל כותרות, באפשרותך לציין HDR = לא במאפיינים מורחבים במחרוזת החיבור. אם באפשרותך לציין HDR = לא במחרוזת החיבור, Jet ספק OLE DB לשדות שמות באופן אוטומטי עבורך (F1 מייצג את השדה הראשון, F2 מייצג את השדה השני, וכן הלאה).

סוגי נתונים

שלא כמו מסד נתונים מסורתית, אין דרך ישירה לציון סוגי נתונים עבור עמודות בטבלאות Excel. במקום זאת, ספק OLE DB סורק הקלד שמונה השורות עמודה כדי guess הנתונים עבור השדה. באפשרותך לשנות את מספר השורות סריקה על-ידי ציון ערך בין אחת (1) שישה עשר (16) עבור MAXSCANROWS הגדרת במאפיינים מורחבים של מחרוזת החיבור שלך.

מוסכמות למתן שמות טבלה

קיימות מספר דרכים ניתן להפנות טבלה (או טווח) ב חוברת עבודה של Excel:
  • להשתמש את שם הגיליון ואחריו סימן דולר (לדוגמה, [גיליון1$] או [$ בגליון העבודה שלי]). טבלה בחוברת העבודה שאליו קיימת הפניה בקובץ זה באופן כולל את טווח גליון העבודה בשימוש כולה.
    בחר * מ [גיליון1$]
  • (לדוגמה, להשתמש בטווח בעל שם מוגדר [MyNamedRange]):
    בחר * מ [MyNamedRange]
  • להשתמש בטווח עם כתובת ספציפית (לדוגמה, [גיליון1$ A1: B10]):
    בחר * מ [גיליון1$ A1: B10]
הערה: סימן דולר לאחר שם גליון העבודה הוא סימן כי קיים בטבלה. אם אתה יוצר טבלה חדשה, כפי שנידון יצירת חוברות עבודה חדשות וטבלאותמקטע של מאמר זה, אל תשתמש סימן דולר.

כיצד להשתמש בחוברות עבודה של Excel כפי למקורות נתונים ADO.NET

לאחזר רשומות

באפשרותך לאחזר רשומות מתוך מסד נתונים על-ידי שימוש באחד שני הגישות ADO.NET: עם הנתונים (dataset) או עם DataReader.

הנתונים (dataset) הוא מטמון מהרשומות שאוחזרו ממקור הנתונים. הנתונים הנתונים (dataset) היא בדרך כלל גרסה מופחתת יותר של מהו במסד הנתונים. עם זאת, באפשרותך לעבוד עם אותה באותו אופן שבו אתה עובד עם בפועל הנתונים נשארים מנותקת ממסד הנתונים בפועל. בנוסף לאחזור נתונים, באפשרותך גם להשתמש הנתונים (dataset) כדי לבצע פעולות עדכון הבסיסית מסד הנתונים.

לחלופין, באפשרותך להשתמש של DataReader לאחזר זרם לקריאה בלבד, קדימה בלבד של נתונים מסד הנתונים. בעת שימוש בתוכנית DataReader , הגדלת ביצועי המערכת תקורת הוא קטן מאחר שורה אחת בלבד בכל פעם מתמיד בזיכרון. אם יש לך כמות גדולה כדי לאחזר נתונים ואין בכוונתך לבצע שינויים הבסיסית מסד נתונים, DataReader הוא בחירה טובה יותר מאשר הנתונים (dataset).

להוסיף ולעדכן רשומות

עם ADO.NET, באפשרותך להוסיף ולעדכן רשומות חוברת עבודה ב- באחת משלוש דרכים:
  • ישירות להפעיל פקודה כדי להוסיף או לעדכן רשומות אחד זמן. כדי לעשות זאת, באפשרותך ליצור אובייקט OLEDbCommand בחיבור שלך והגדר את המאפיין CommandText לפקודה חוקי כדי להוסיף רשומות

    INSERT INTO [Sheet1$] (F1, F2) values ('111', 'ABC')
    או פקודה כדי לעדכן רשומות

    UPDATE [Sheet1$] SET F2 = 'XYZ' WHERE F1 = '111'
    ולאחר מכן לקרוא לפעולת השירות ExecuteNonQuery .
  • לבצע שינויים DataSet שמילאת עם טבלה/שאילתה מחוברת עבודה של Excel וקרא את שיטת עדכוןDataAdapter לפתור שינויים מתוך קבוצת הנתונים חזרה לחוברת העבודה. עם זאת, כדי להשתמש בשיטת עדכון עבור שינוי רזולוציה שעליך להגדיר פרמטרים פקודות עבור DataAdapter InsertCommand
    INSERT INTO [Sheet1$] (F1, F2) values (?, ?)
    ו UpdateCommand:
    UPDATE [Sheet1$] SET F2 = ? WHERE F1 = ?
    פקודות עם פרמטרים INSERT ו- UPDATE נדרשים מאחר OleDbDataAdapter לא יספק מידע מפתח/אינדקס עבור חוברות עבודה של Excel; ללא שדות מפתח/אינדקס, CommandBuilder אין אפשרות להפיק באופן אוטומטי פקודות עבורך.
  • ייצוא נתונים ממקור נתונים אחר לתוך חוברת עבודה של Excel שסופקו כך שניתן להשתמש במקור נתונים אחר עם Jet ספק ה-OLE DB. נתונים מקורות בהם באפשרותך להשתמש עם ספק OLE DB של Jet באופן זה כוללים קבצי טקסט, מסדי נתונים של 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, היא אינה מאפשרת פעולות מחיקה. אם תנסה כדי לבצע פעולת מחיקה על רשומה אחת או יותר, תקבל את הפעולות הבאות הודעת שגיאה:
מחיקת נתונים בטבלה מקושרת אינה נתמך על-ידי ISAM זה.
מגבלה זו היא הטבועים הטיפול של חוברות עבודה של Excel כמו מסדי נתונים.

ליצור חוברות עבודה וטבלאות

כדי ליצור טבלה בחוברת עבודה של Excel, הפעל יצירת טבלה הפקודה:
CREATE TABLE Sheet1 (F1 char(255), F2 char(255))
בעת הפעלת פקודה זו, גליון עבודה חדש נוצר עם שם הטבלה שתציין הפקודה. אם חוברת העבודה עבור ההתקשרות אינה לא קיים, היא מדי תיווצר.

את הקוד לדוגמה מקטע מדגימה כיצד באפשרותך להשתמש בפקודה CREATE TABLE כדי ליצור חוברת עבודה חדשה ו טבלה.

שלב אחר שלב

הקוד לדוגמה

  1. התחלת פרוייקט Visual Basic .NET Windows יישום חדש.

    טופס1 נוצרת כברירת מחדל.
  2. הוספת פקד לחצן ופקדים של שש האפשרויות טופס1.
  3. בחר את כל הפקדים האפשרויות והגדר את המאפיין גודל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. לשנות את הנתיב אל מסד הנתונים של Access לדוגמה, Northwind, עבור חבר m_sNorthwind בקוד, במידת הצורך.

התנסות

  1. בתפריט תצוגה , הצבע על חלונות אחריםולאחר מכן לחץ על פלט כדי להציג את חלון פלט .
  2. הקש F5 כדי לבנות ולהפעיל את התוכנית.
  3. לחץ על Create_Workbook ולאחר מכן לחץ על מעבר. ההליך Create_Workbook מפעיל את הפקודות יצירת טבלה כדי ליצור שתי חוברות עבודה חדשות: C:\ExcelData1.xls ו- C:\ExcelData2.xls. גיליון אחד מכיל ExcelData1.xls (טבלה) בשם EmployeeData ExcelData2.xls מכיל גליון אחד (טבלה) בשם InventoryData. הטבלאות מתמלאים רשומות.

    הערה: בכל שלב הנותרים ב מחשב זה, פתח את חוברות העבודה ב- Excel כדי לבחון את התוצאות. לחלופין, לחץ על Retrieve_Records כדי להציג את התוכן של טבלאות הפלט חלון של Visual Studio .NET.
  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 מוסיף שתי רשומות לכל טבלה:
    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 עדכונים שתי רשומות בכל חוברת עבודה:
    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 תאים מסוימים בגליון EmployeeData ExcelData1.xls; באופן ספציפי, תאים F3 G3 וכן I4 מעודכנים.
  8. לחץ על Use_External_Source ולאחר מכן לחץ על מעבר. כאשר תשתמש הוספה של...בתוך פקודה, שיגרת Use_External_Source יצרף רשומות מהטבלה 'עובדים' הצפון העבודה EmployeeData ExcelData1.xls. ומשתמש, Use_External_Source בחירה...לתוך הפקודה כדי ליצור טבלה חדשה (או גיליון) ExcelData2.xls המכיל את כל הרשומות מטבלה הצפון 'מוצרים'.

    הערה: אם אתה לוחץ על Use_External_Source יותר מפעם אחת, רשימת העובדים יצורפו מרובים הזמן שהוקצב מכיוון המפתח הראשי לא מזוהה או לאכוף.

עיצוב תא

אם אתה משתמש ADO.NET כדי להוסיף או לעדכן רשומות קיימת חוברת עבודה, באפשרותך להחיל עיצוב בחוברת העבודה אשר ישמשו עם תא רשומות חדשים או מעודכנים. בעת עדכון רשומה קיימת (או שורה) ב- חוברת העבודה, עיצוב התא נשמר. ו בעת הוספת רשומה חדשה (או שורה) בחוברת עבודה, הרשומה החדשה יורש של השורה שמעליה עיצוב אותו.

הפרוצדורה הבאה מראה כיצד ניתן להשתמש בעיצוב חוברת עם הקוד לדוגמה:
  1. הקש F5 כדי לבנות ולהפעיל את הדגימה.
  2. לחץ על Create_Workbook טופס1, ולאחר מכן לחץ על מעבר.
  3. הפעל את Microsoft Excel ולפתוח C:\ExcelData1.xls.
  4. החלת סגנון גופן מודגש לתא A2.
  5. להחיל על נטוי, קו תחתון סגנון תא B2 וליישר מרכז.
  6. החלת תבנית תאריך ארוכה תא C2.
  7. שמור וסגור את C:\ExcelData1.xls.
  8. לחץ על Add_Records טופס1, ולאחר מכן לחץ על מעבר.
  9. פתח את ' C:\ExcelData1.xls ' ב- Excel ושים לב כי שני חדש שורות שעברו בירושה את העיצוב מהשורה הראשונה.

מגבלות

להלן מספר מגבלות של ספק OLE DB של Jet ב התייחס לנתוני Excel מקורות:
  • אין אפשרות להוסיף נוסחאות בתאים באמצעות ADO.NET.
  • Jet ספק ה-OLE DB אין אפשרות לספק מפתח/אינדקס מידע עבור טבלאות בחוברת עבודה של Excel. מסיבה זו, אין באפשרותך להשתמש CommandBuilder ליצירה אוטומטית של עדכונים והוספות עבור רשומות בחוברת עבודה של Excel.

מידע נוסף

לקבלת מידע נוסף, לחץ על מספרי המאמרים הבאים כדי להציג את המאמרים מתוך מאגר הידע Microsoft Knowledge Base:
316756PRB: שגיאה מתרחשת בעת שימוש ADO.NET OLEDbDataAdapter כדי לשנות את חוברת העבודה של Excel
257819 כיצד להשתמש ב- ADO עם נתוני Excel מתוך Visual Basic או ב- VBA
306022 כיצד להעביר נתונים בחוברת עבודה של Excel על-ידי שימוש ב- Visual Basic .NET
306023 כיצד להעביר נתונים של excel חוברת העבודה באמצעות Visual C# .NET
311731 כיצד השאילתה ואת הצגת נתונים של Excel באמצעות ASP.NET, ADO.NET ו- Visual Basic .NET
306572 כיצד השאילתה ואת הצגת נתונים של Excel באמצעות ASP.NET, ADO.NET ו Visual C# .NET
278973 לדוגמה: ExcelADO מדגים כיצד להשתמש ב- ADO לקריאה ולכתיבה של נתונים בחוברות עבודה של Excel

מאפיינים

Article ID: 316934 - Last Review: יום שישי 07 יוני 2013 - Revision: 1.0
המידע במאמר זה חל על:
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
מילות מפתח 
kbhowtomaster kbmt KB316934 KbMthe
תרגום מכונה
חשוב: מאמר זה תורגם באמצעות תוכנת תרגום מכונה של Microsoft וייתכן שנערך לאחר מכן על-ידי קהילת Microsoftבאמצעות טכנולוגייתCommunity Translation Framework (CTF) או באמצעות תרגום אנושי. Microsoft מציעה לך גם מאמרים בתרגום אנושי, מאמרים בתרגום מכונה ומאמרים שנערכו על ידי הקהילה כדי לאפשר גישה למאמרים הקיימים במאגר הידע (Knowledge Base) שלMicrosoft בשפות שונות. מאמרים מתורגמים יכולים להכיל שגיאות באוצר המילים, בתחביר או בדקדוק. Microsoft אינה אחראית לחוסר דיוק, שגיאות או נזקים שייגרמו כתוצאה מטעויות בתכנים או משימוש בתכנים על ידי לקוחותיה.
כותרת מאמר זה באנגלית: 316934

ספק משוב

 

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