כיצד לייבא נתונים מ- Excel ל- SQL Server

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

On This Page

תקציר

מאמר זה מדגים כיצד לייבא נתונים מגליונות עבודה של Microsoft Excel מסדי נתונים של שרת Microsoft SQL באמצעות מגוון שיטות.

תיאור של הטכניקה

הדוגמאות במאמר זה לייבא נתונים מ- Excel באמצעות:
  • שירותי המרת נתונים של שרת SQL (DTS)
  • שילוב של Microsoft SQL Server 2005 שירותים (SSIS)
  • שרתי SQL Server מקושרים
  • שאילתות SQL Server מבוזרת
  • אובייקטי נתונים של ActiveX (ADO) לבין ספק OLE DB של Microsoft עבור שרת SQL
  • ADO לבין ספק OLE DB של Microsoft עבור Jet 4.0

דרישות

הרשימה הבאה מתארת את מומלצים חומרה, תוכנה, תשתית רשת ו- service packs הדרושים:
  • מופע הזמינות של שרת Microsoft SQL גירסה 7.0 או Microsoft SQL Server 2000 או Microsoft SQL Server 2005
  • Microsoft Visual Basic 6.0 עבור דוגמאות ADO המשתמשות ב- Visual Basic
חלקים במאמר זה מבוססים על ההנחה שאתה מכיר הנושאים הבאים:
  • שירותי המרת נתונים
  • שרתים מקושרים ושאילתות מבוזרת
  • פיתוח ADO ב- Visual Basic

דוגמאות

ייבוא לעומת הוספה

משפטי SQL לדוגמה בהם נעשה שימוש במאמר זה להדגים שאילתות יצירת טבלה לייבא נתוני Excel לתוך טבלה חדשה של SQL Server באמצעות בחירת...אל...מתוך תחביר. באפשרותך להמיר את המשפטים האלה שאילתות הוספה באמצעות INSERT INTO...בחירת...מתוך תחביר בעת המשך להפנות את האובייקטים של המקור והיעד כפי שמוצג אלה דוגמאות קוד.

השתמש DTS או SSIS

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

השתמש שרת מקושר

כדי לפשט שאילתות, באפשרותך להגדיר חוברת עבודה של Excel ב- SQL Server של שרת מקושר.לקבלת מידע נוסף, לחץ על מספר המאמר שלהלן כדי להציגו מתוך מאגר הידע Microsoft Knowledge Base:
306397 HOWTO: השתמש ב- Excel עם שרת SQL מקושר שרתי ומופצת שאילתות
הקוד הבא מייבא את הנתונים מגליון העבודה לקוחות בשרת Excel המקושר "EXCELLINK" לתוך טבלת שרת SQL חדשה בשם XLImport1:
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]
				
באפשרותך גם לבצע את השאילתה מול המקור באופן מעבר באמצעות OPENQUERY כדלקמן:
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,
    'SELECT * FROM [Customers$]')
				

השתמש בשאילתות מבוזרת

אם אין ברצונך להגדיר חיבור קבוע אל חוברת העבודה של Excel כשרת מקושר, באפשרותך לייבא נתונים עבור מטרה מסוימת על-ידי שימוש את OPENDATASOURCE או את הפונקציה OPENROWSET. דוגמאות הקוד הבאה גם לייבא את הנתונים מתוך גליון עבודה של Excel ללקוחות לטבלאות שרת SQL חדשות:
SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]

SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', [Customers$])

SELECT * INTO XLImport5 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\test\xltest.xls', 'SELECT * FROM [Customers$]')
				

השתמש ADO ו- SQLOLEDB

כאשר אתה מחובר לשרת SQL ביישום ADO באמצעות Microsoft OLE DB עבור שרת SQL (SQLOLEDB), באפשרותך להשתמש בתחביר זהה לזה "בשאילתה מבוזרת" מ- שימוש בשאילתות מבוזרת מקטע כדי לייבא נתונים מ- Excel ל- SQL Server.

דוגמת הקוד הבאה של Visual Basic 6.0 דורש להוסיף הפניה אל אובייקטי נתונים של ActiveX (ADO). דוגמת קוד זה גם מדגים כיצד להשתמש OPENDATASOURCE OPENROWSET בחיבור SQLOLEDB.
    Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Set cn = New ADODB.Connection
    cn.Open "Provider=SQLOLEDB;Data Source=<server>;" & _
        "Initial Catalog=<database>;User ID=<user>;Password=<password>"

    'Import by using OPENDATASOURCE.
    strSQL = "SELECT * INTO XLImport6 FROM " & _
        "OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', " & _
        "'Data Source=C:\test\xltest.xls;" & _
        "Extended Properties=Excel 8.0')...[Customers$]"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    'Import by using OPENROWSET and object name.
    strSQL = "SELECT * INTO XLImport7 FROM " & _
        "OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _
        "'Excel 8.0;Database=C:\test\xltest.xls', " & _
        "[Customers$])"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    'Import by using OPENROWSET and SELECT query.
    strSQL = "SELECT * INTO XLImport8 FROM " & _
        "OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _
        "'Excel 8.0;Database=C:\test\xltest.xls', " & _
        "'SELECT * FROM [Customers$]')"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff

    cn.Close
    Set cn = Nothing
				

השתמש ADO לבין ספק Jet

הדוגמה בסעיף הקודם משתמש ADO עם הספק SQLOLEDB להתחבר ליעד הייבוא Excel ל- SQL שלך. באפשרותך גם להשתמש ספק ה-OLE DB עבור Jet 4.0 כדי להתחבר למקור הנתונים של Excel.

מנגנון מסד הנתונים Jet יכול להפנות מסדי נתונים חיצוניים במשפטי SQL על-ידי שימוש בתחביר מיוחד בעל שלוש תבניות שונות:
  • [הנתיב המלא לקובץ מסד נתונים של Microsoft Access].[שם הטבלה]
  • [שם ISAM;מחרוזת החיבור ISAM].[שם הטבלה]
  • [ODBC;מחרוזת חיבור ODBC].[שם הטבלה]
סעיף זה משתמש בתבנית השלישית לשם יצירת התקשרות ODBC למסד הנתונים על שרת SQL היעד. באפשרותך להשתמש של שם מקור נתונים ODBC (DSN) או מחרוזת חיבור ללא dsn:
DSN:
    [odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]

DSN-less:
   [odbc;Driver={SQL Server};Server=<server>;Database=<database>;
       UID=<user>;PWD=<password>]
				
דוגמת הקוד הבאה של Visual Basic 6.0 דורש להוסיף הפניה פרוייקט ADO. דוגמת קוד זה מדגים כיצד לייבא נתונים מ- Excel ל- SQL Server בחיבור ADO באמצעות הספק Jet 4.0.
    Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=C:\test\xltestt.xls;" & _
        "Extended Properties=Excel 8.0"
    
    'Import by using Jet Provider.
    strSQL = "SELECT * INTO [odbc;Driver={SQL Server};" & _
        "Server=<server>;Database=<database>;" & _
        "UID=<user>;PWD=<password>].XLImport9 " & _
        "FROM [Customers$]"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    Debug.Print "Records affected: " & lngRecsAff
        
    cn.Close
    Set cn = Nothing
				
באפשרותך גם להשתמש בתחביר זה, ספק Jet תומך, כדי לייבא נתוני Excel לתוך אחרים מסדי נתונים של Microsoft Access, מסדי נתונים ("שולחן") של גישה סדרתית סדורה באינדקס (ISAM שיטת) או מסדי נתונים של ODBC.

פתרון בעיות

  • זכור שמות אובייקט Excel יצורפו עם סימן דולר ($) מייצגים גליונות עבודה (לדוגמה, גיליון1$) ואת שמות האובייקטים רגיל לייצג Excel טווחים בעלי שם.
  • בנסיבות מסוימות, במיוחד כאשר אתה מייעד את נתוני המקור של Excel באמצעות שם הטבלה במקום שאילתת בחירה, העמודות בטבלת היעד שרת SQL יסודרו לפי סדר האלפבית.לקבלת מידע נוסף אודות בעיה זו עם הספק Jet, לחץ על מספר המאמר שלהלן כדי להציגו מתוך מאגר הידע Microsoft Knowledge Base:
    299484 PRB: עמודות ממוינים בסדר אלפביתי בעת שימוש ADOX כדי לאחזר עמודות של טבלה של Access
  • כאשר ספק Jet קובע עמודה Excel מכיל טקסט מעורב ונתונים מספריים, ספק Jet בוחר את סוג הנתונים "רוב" ומחזירה ערכים שאינם תואמים כמו ערכי Null.לקבלת מידע נוסף אודות הדרך לעקוף בעיה זו, לחץ על מספר המאמר שלהלן כדי להציגו מתוך מאגר הידע Microsoft Knowledge Base:
    194124 PRB: Excel בערכים המוחזרים כ- NULL באמצעות DAO OpenRecordset

מידע נוסף

לקבלת מידע נוסף אודות אופן השימוש ב- Excel כמקור נתונים, לחץ על מספר המאמר שלהלן כדי להציגו מתוך מאגר הידע Microsoft Knowledge Base:
257819 HOWTO: השתמש ADO נתוני Excel מתוך Visual Basic או ב- VBA
לקבלת מידע נוסף אודות אופן העברת נתונים ל- Excel, לחץ על מספרי המאמרים שלהלן כדי להציגם מתוך מאגר הידע Microsoft Knowledge Base:
295646 HOWTO: העבר נתונים ממקור הנתונים ADO ל- Excel באמצעות ADO
247412 מידע: שיטות להעברת נתונים ל- Excel מתוך Visual Basic
246335 HOWTO: העבר נתונים מערכת רשומות ADO ל- Excel באמצעות אוטומציה
319951 כיצד: העברת נתונים ל- Excel באמצעות שירותי המרה נתונים של שרת SQL
306125 כיצד: ייבוא נתונים מ- SQL Server ל- Microsoft Excel

מאפיינים

Article ID: 321686 - Last Review: יום חמישי 25 אפריל 2013 - Revision: 2.0
המידע במאמר זה חל על:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
מילות מפתח 
kbhowtomaster kbjet kbmt KB321686 KbMthe
תרגום מכונה
חשוב: מאמר זה תורגם באמצעות תוכנת תרגום מכונה של Microsoft וייתכן שנערך לאחר מכן על-ידי קהילת Microsoftבאמצעות טכנולוגייתCommunity Translation Framework (CTF) או באמצעות תרגום אנושי. Microsoft מציעה לך גם מאמרים בתרגום אנושי, מאמרים בתרגום מכונה ומאמרים שנערכו על ידי הקהילה כדי לאפשר גישה למאמרים הקיימים במאגר הידע (Knowledge Base) שלMicrosoft בשפות שונות. מאמרים מתורגמים יכולים להכיל שגיאות באוצר המילים, בתחביר או בדקדוק. Microsoft אינה אחראית לחוסר דיוק, שגיאות או נזקים שייגרמו כתוצאה מטעויות בתכנים או משימוש בתכנים על ידי לקוחותיה.
כותרת מאמר זה באנגלית: 321686

ספק משוב

 

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