Aracılığıyla paylaş


SQL Server Integration Services (SSIS) ile Verileri Excel'den içeri aktarma veya Excel'e aktarma

Şunlar için geçerlidir:SQL Server Azure Data Factory'de SSIS Tümleştirme Çalışma Zamanı

Bu makalede, Excel'den veri aktarmak veya SQL Server Integration Services (SSIS) ile Verileri Excel'e aktarmak için sağlamanız gereken bağlantı bilgileri ve yapılandırmanız gereken ayarlar açıklanmaktadır.

Aşağıdaki bölümlerde, Excel'i SSIS ile başarıyla kullanmak ve yaygın sorunları anlamak ve gidermek için ihtiyacınız olan bilgiler yer almaktadır:

Kullanabileceğiniz araçlar

Aşağıdaki araçlardan birini kullanarak Verileri Excel'den içeri aktarabilir veya SSIS ile Excel'e aktarabilirsiniz:

Excel'e bağlanmak için ihtiyacınız olan dosyaları alma

Excel'den veri içeri aktarabilmeniz veya SSIS ile Verileri Excel'e aktarabilmeniz için önce, henüz yüklü değilse Excel'in bağlantı bileşenlerini indirmeniz gerekebilir. Excel'in bağlantı bileşenleri varsayılan olarak yüklenmez.

Ortamınız için ek bileşenlerin gerekli olup olmadığını anlamak için Office Tıkla-Çalıştır dışındaki Access ODBC, OLEDB veya DAO arabirimleri kullanılamıyor içindeki tabloyu kullanın.

Not: Office Sistem Sürücüleri yalnızca belirli senaryolarda desteklenir. Belirli yönergeler için lütfen Office'in sunucu tarafı Otomasyonu ile ilgili dikkat edilmesi gerekenler konusuna bakın.

Veri kaynağınız olarak Excel'i belirtin

İlk adım, Excel'e bağlanmak istediğinizi belirtmektir.

SSIS'de

SSIS'de, Excel kaynak veya hedef dosyasına bağlanmak için bir Excel Bağlantı Yöneticisi oluşturun. Bağlantı yöneticisini oluşturmanın birkaç yolu vardır:

  • Bağlantı Yöneticileri alanında sağ tıklayın ve Yeni bağlantı'yı seçin. SSIS Bağlantı Yöneticisi Ekle iletişim kutusunda EXCEL'i ve ardından Ekle'yi seçin.

  • SSIS menüsünde Yeni bağlantı'yı seçin. SSIS Bağlantı Yöneticisi Ekle iletişim kutusunda EXCEL'i ve ardından Ekle'yi seçin.

  • Bağlantı yöneticisini , Excel Kaynak Düzenleyicisi'nin Veya Excel Hedef Düzenleyicisi'nin Bağlantı yöneticisi sayfasında Excel Kaynağı'nı veya Excel Hedefi'ni yapılandırdığınız anda oluşturun.

SQL Server İçeri ve Dışarı Aktarma Sihirbazı'nda

İçeri ve Dışarı Aktarma Sihirbazı'ndaki Veri Kaynağı Seç veya Hedef Seç sayfasında, Veri kaynağı listesinde Microsoft Excel'i seçin.

Veri kaynakları listesinde Excel'i görmüyorsanız 32 bit sihirbazı çalıştırdığınızdan emin olun. Excel bağlantı bileşenleri genellikle 32 bit dosyalardır ve 64 bit sihirbazda görünmez.

Excel dosyası ve dosya yolu

Sağlayabilecek ilk bilgi, Excel dosyasının yolu ve dosya adıdır. Bu bilgileri SSIS paketindeki Excel Bağlantı Yöneticisi Düzenleyicisi'nde veya İçeri ve Dışarı Aktarma Sihirbazı'nın Veri Kaynağı Seç veya Hedef Seç sayfasında sağlarsınız.

Yolu ve dosya adını aşağıdaki biçimde girin:

  • Yerel bilgisayardaki bir dosya için C:\TestData.xlsx.

  • Ağ paylaşımındaki bir dosya için \\Sales\Data\TestData.xlsx.

Alternatif olarak, iletişim kutusunu kullanarak elektronik tabloyu bulmak için Gözat'ı seçin.

Önemli

Parola korumalı bir Excel dosyasına bağlanamazsınız.

Excel sürümü

Sağlayabilecek ikinci bilgi, Excel dosyasının sürümüdür. Bu bilgileri SSIS paketindeki Excel Bağlantı Yöneticisi Düzenleyicisi'nde veya İçeri ve Dışarı Aktarma Sihirbazı'nın Veri Kaynağı Seç veya Hedef Seç sayfasında sağlarsınız.

Dosyayı oluşturmak için kullanılan Microsoft Excel sürümünü veya başka bir uyumlu sürümü seçin. Örneğin, 2016 bağlantı bileşenlerini yüklerken sorun yaşadıysanız, 2010 bileşenlerini yükleyebilir ve bu listeden Microsoft Excel 2007-2010'u seçebilirsiniz.

Bağlantı bileşenlerinin yalnızca eski sürümleri yüklüyse listeden daha yeni Excel sürümleri seçemeyebilirsiniz. Excel sürüm listesi, SSIS tarafından desteklenen tüm Excel sürümlerini içerir. Bu listedeki öğelerin varlığı, gerekli bağlantı bileşenlerinin yüklü olduğunu göstermez. Örneğin, 2016 bağlantı bileşenlerini yüklememiş olsanız bile listede Microsoft Excel 2016 görüntülenir.

Uyarı

SQL Server Management Studio 21 ve SQL Server 2025'den başlayarak, İçeri ve Dışarı Aktarma Sihirbazı yalnızca 64 bit ortamı destekler. Microsoft.JET.OLEDB.4.0 yalnızca 32 bit ortamlarda çalışır.

Excel dosyaları için İçeri ve Dışarı Aktarma Sihirbazı'nı 64 bitlik bir ortamda kullanmak üzere Microsoft.ACE.OLEDB.16.0 sağlayıcısını yüklemek üzere Microsoft Access Veritabanı Altyapısı 2016 Yeniden Dağıtılabilir'i indirin. Ardından SQL Server İçeri ve Dışarı Aktarma Sihirbazı'nda Aşağıdaki ekran görüntüsü gibi Excel sürümü olarak Microsoft Excel 2016'yı seçin:

Microsoft Excel 2016'nın seçili olduğu SSMS'de Excel İçeri ve Dışarı Aktarma Sihirbazı'nın ekran görüntüsü.

Microsoft.ACE.OLEDB.16.0 sağlayıcısı, Excel 97-2003 ().xsl ve Excel 2007-2010, 2016 (.xlsx tarafından oluşturulan Excel dosyalarını destekler.

İlk satırda sütun adları var

Excel'den veri içeri aktarıyorsanız, sonraki adım verilerin ilk satırının sütun adları içerip içermediğini belirtmektir. Bu bilgileri bir SSIS paketindeki Excel Bağlantı Yöneticisi Düzenleyicisi'nde veya İçeri ve Dışarı Aktarma Sihirbazı'nın Veri Kaynağı Seçin sayfasında sağlarsınız.

  • Kaynak veriler sütun adları içermediğinden bu seçeneği devre dışı bırakırsanız, sihirbaz sütun başlıkları olarak F1, F2 vb. kullanır.
  • Veriler sütun adları içeriyorsa ancak bu seçeneği devre dışı bırakırsanız sihirbaz, sütun adlarını ilk veri satırı olarak içeri aktarır.
  • Veriler sütun adları içermiyorsa ancak bu seçeneği etkinleştirirseniz sihirbaz, kaynak verilerin ilk satırını sütun adları olarak kullanır. Bu durumda, kaynak verilerin ilk satırı artık verilerin kendisine dahil değildir.

Excel'den veri dışarı aktarıyorsanız ve bu seçeneği etkinleştirirseniz, dışarı aktarılan verilerin ilk satırı sütun adlarını içerir.

Çalışma sayfaları ve aralıklar

Verileriniz için kaynak veya hedef olarak kullanabileceğiniz üç tür Excel nesnesi vardır: çalışma sayfası, adlandırılmış aralık veya adresiyle belirttiğiniz adlandırılmamış bir hücre aralığı.

  • Çalışma. Çalışma sayfası belirtmek için, karakteri sayfa adının sonuna ekleyin $ ve dizenin çevresine sınırlayıcılar ekleyin; örneğin, [Sayfa1$]. Alternatif olarak, var olan tablo ve görünümler listesinde karakteriyle $ biten bir ad da arayabilirsiniz.

  • Adlandırılmış aralık. Adlandırılmış bir aralık belirtmek için aralık adını girin( örneğin, MyDataRange). Alternatif olarak, var olan tablo ve görünümler listesindeki karakterle $ bitmeyecek bir ad da arayabilirsiniz.

  • Adsız aralık. Adlandırmadığınız bir hücre aralığı belirtmek için, sayfa adının sonuna $ karakterini ekleyin, aralık belirtimini ekleyin ve dizenin çevresine sınırlayıcılar ekleyin; örneğin, [Sayfa1$A1:B4].

Verileriniz için kaynak veya hedef olarak kullanmak istediğiniz Excel nesnesinin türünü seçmek veya belirtmek için aşağıdakilerden birini yapın:

SSIS'de

SSIS'de, Excel Kaynak Düzenleyicisi'nin veya Excel Hedef Düzenleyicisi'ninBağlantı yöneticisi sayfasında aşağıdakilerden birini yapın:

  • Çalışma sayfası veya adlandırılmış aralık kullanmak için Veri erişim modu olarak Tablo veya görünüm'ü seçin. Ardından , Excel sayfasının adı listesinde çalışma sayfasını veya adlandırılmış aralığı seçin.

  • Adresiyle belirttiğiniz adlandırılmamış bir aralığı kullanmak için Veri erişim modu olarak SQL komutunu seçin. Ardından SQL komut metin alanına aşağıdaki örneğe benzer bir sorgu girin:

    SELECT * FROM [Sheet1$A1:B5]
    

SQL Server İçeri ve Dışarı Aktarma Sihirbazı'nda

İçeri ve Dışarı Aktarma Sihirbazı'nda aşağıdakilerden birini yapın:

  • Excel'den içeri aktarırken aşağıdakilerden birini yapın:

    • Çalışma sayfası veya adlandırılmış aralık kullanmak için, Tablo kopyalama veya sorgu belirtin sayfasında Bir veya daha fazla tablo veya görünümden veri kopyala'yı seçin. Ardından , Kaynak Tabloları ve Görünümleri Seç sayfasındaki Kaynak sütununda, kaynak çalışma sayfalarını ve adlandırılmış aralıkları seçin.

    • Adresiyle belirttiğiniz adsız bir aralığı kullanmak için, Tablo kopyalama veya sorgu belirt sayfasında, Aktarılacak verileri belirtmek için Sorgu yaz'ı seçin. Ardından , Kaynak Sorgu Sağla sayfasında aşağıdaki örneğe benzer bir sorgu sağlayın:

      SELECT * FROM [Sheet1$A1:B5]
      
  • Excel'e aktarırken aşağıdakilerden birini yapın:

    • Çalışma sayfasını veya adlandırılmış aralığı kullanmak için, Kaynak Tabloları ve Görünümleri Seç sayfasındaki Hedef sütununda, hedef çalışma sayfalarını ve adlandırılmış aralıkları seçin.

    • Adresiyle belirttiğiniz adsız bir aralığı kullanmak için , Kaynak Tabloları ve Görünümleri Seç sayfasındaki Hedef sütununda, aralığı sınırlayıcılar olmadan aşağıdaki biçimde girin: Sheet1$A1:B5. Sihirbaz sınırlayıcıları ekler.

İçeri veya dışarı aktarmak için Excel nesnelerini seçtikten veya girdikten sonra, sihirbazın Kaynak Tabloları ve Görünümleri Seç sayfasında aşağıdaki işlemleri de yapabilirsiniz:

  • Eşlemeleri Düzenle'yi seçerek kaynak ve hedef arasındaki sütun eşlemelerini gözden geçirin.

  • Önizleme'yi seçerek örnek verilerin önizlemesini seçerek beklediğiniz gibi olduğundan emin olun.

Veri türleriyle ilgili sorunlar

Veri türleri

Excel sürücüsü yalnızca sınırlı sayıda veri türünü tanır. Örneğin, tüm sayısal sütunlar çift (DT_R8) olarak yorumlanır ve tüm dize sütunları (not sütunları dışında) 255 karakterlik Unicode dizeleri (DT_WSTR) olarak yorumlanır. SSIS, Excel veri türlerini aşağıdaki gibi eşler:

  • Sayısal - çift duyarlıklı kayan (DT_R8)

  • Para Birimi - para birimi (DT_CY)

  • Boole - Boole dili (DT_BOOL)

  • Tarih/saat - tarih saat (DT_DATE)

  • Dize - Unicode dizesi, uzunluk 255 (DT_WSTR)

  • Not - Unicode metin akışı (DT_NTEXT)

Veri türü ve uzunluk dönüştürmeleri

SSIS, veri türlerini örtük olarak dönüştürmez. Sonuç olarak, Excel verilerini Excel dışında bir hedefe yüklemeden önce açıkça dönüştürmek için Türetilmiş Sütun veya Veri Dönüştürme dönüştürmeleri kullanmanız veya Verileri Excel'den başka bir kaynaktan Excel hedefine yüklemeden önce dönüştürmeniz gerekebilir.

Aşağıda, gerekli olabilecek dönüştürmelerin bazı örnekleri verilmiştir:

  • Unicode Excel dize sütunları ile belirli kod sayfası içeren Unicode olmayan dize sütunları arasında dönüştürme.

  • 255 karakterlik Excel dize sütunları ile farklı uzunluktaki dize sütunları arasında dönüştürme.

  • Çift duyarlıklı Excel sayısal sütunları ile diğer türlerdeki sayısal sütunlar arasında dönüştürme.

Tavsiye

İçeri ve Dışarı Aktarma Sihirbazı'nı kullanıyorsanız ve verileriniz bu dönüştürmelerden bazılarını gerektiriyorsa, sihirbaz sizin için gerekli dönüştürmeleri yapılandırıyor. Sonuç olarak, bir SSIS paketi kullanmak istediğinizde bile, İçeri ve Dışarı Aktarma Sihirbazı'nı kullanarak ilk paketi oluşturmak yararlı olabilir. Sihirbazın sizin için bağlantı yöneticileri, kaynaklar, dönüşümler ve hedefler oluşturmasına ve yapılandırmasına izin verin.

İçeri aktarmayla ilgili sorunlar

Boş satırlar

Kaynak olarak bir çalışma sayfası veya adlandırılmış aralık belirttiğinizde, sürücü çalışma sayfasının veya aralığın sol üst köşesindeki ilk boş olmayan hücreden başlayarak bitişik hücre bloğunu okur. Sonuç olarak, verilerinizin 1. satırda başlaması gerekmez, ancak kaynak verilerde boş satırlar olamaz. Örneğin, sütun başlıklarıyla veri satırları arasında boş bir satır veya çalışma sayfasının üst kısmında boş satırlar olan bir başlık olamaz.

Verilerinizin üzerinde boş satırlar varsa, verileri çalışma sayfası olarak sorgulayamazsınız. Excel'de veri aralığınızı seçmeniz ve aralığa bir ad atamanız ve ardından çalışma sayfası yerine adlandırılmış aralığı sorgulamanız gerekir.

Eksik değerler

Excel sürücüsü, her sütunun veri türünü tahmin etmek için belirtilen kaynaktaki belirli sayıda satırı (varsayılan olarak sekiz satır) okur. Bir sütun, özellikle metin verileriyle karıştırılmış sayısal veriler olmak üzere karışık veri türleri içerdiğinde, sürücü çoğunluk veri türüne karar verir ve diğer türdeki verileri içeren hücreler için null değerler döndürür. (Bir kravatta sayısal tür kazanır.) Excel çalışma sayfasındaki hücre biçimlendirme seçeneklerinin çoğu bu veri türü belirlemeyi etkilemiyor gibi görünüyor.

Tüm değerleri metin olarak içeri aktarmak için İçeri Aktarma Modu'nu belirterek Excel sürücüsünün bu davranışını değiştirebilirsiniz. İçeri Aktarma Modu'nu belirtmek için, Özellikler penceresinde Excel bağlantı yöneticisinin bağlantı dizesindeki Genişletilmiş Özellikler değerine ekleyinIMEX=1.

Kesilmiş metin

Sürücü bir Excel sütununun metin verileri içerdiğini belirlediğinde, sürücü örnek aldığı en uzun değere göre veri türünü (dize veya not) seçer. Sürücü örneklediği satırlarda 255 karakterden uzun bir değer bulamazsa, sütunu not sütunu yerine 255 karakterlik dize sütunu olarak değerlendirir. Bu nedenle, 255 karakterden uzun değerler kesilebilir.

Kesme olmadan bir not sütunundan verileri içeri aktarmak için iki seçeneğiniz vardır:

  • Örneklenen satırlardan en az birindeki not sütununun 255 karakterden uzun bir değer içerdiğinden emin olun

  • Böyle bir satır eklemek için sürücü tarafından örneklenen satır sayısını artırın. Aşağıdaki kayıt defteri anahtarı altında TypeGuessRows değerini artırarak örneklenen satır sayısını artırabilirsiniz:

Yeniden dağıtılabilir bileşenler sürümü Kayıt defteri anahtarı
Excel 2016 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\16.0\Access Connectivity Engine\Engines\Excel
Excel 2010 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel

Dışarı aktarmayla ilgili sorunlar

Yeni hedef dosya oluşturma

SSIS'de

Oluşturmak istediğiniz yeni Excel dosyasının yolunu ve dosya adını içeren bir Excel Bağlantı Yöneticisi oluşturun. Ardından, hedef çalışma sayfasını oluşturmak için Excel Hedef Düzenleyicisi'nde, Excel sayfasının Adı için Yeni'yi seçin. Bu noktada SSIS, belirtilen çalışma sayfasıyla yeni Excel dosyasını oluşturur.

SQL Server İçeri ve Dışarı Aktarma Sihirbazı'nda

Hedef Seçin sayfasında Gözat'ı seçin. iletişim kutusunda, yeni Excel dosyasının oluşturulmasını istediğiniz klasöre gidin, yeni dosya için bir ad sağlayın ve aç'ı seçin.

Yeterince geniş bir aralığa dışarı aktarma

Hedef olarak bir aralık belirttiğinizde, aralık kaynak verilerden daha az sütuna sahipse bir hata oluşur. Ancak, belirttiğiniz aralık kaynak verilerden daha az satıra sahipse, sihirbaz satır yazmaya hatasız devam eder ve aralık tanımını yeni satır sayısıyla eşleşecek şekilde genişletir.

Uzun metin değerlerini dışarı aktarma

Excel sütununa 255 karakterden uzun dizeleri başarıyla kaydedebilmeniz için önce sürücünün hedef sütunun veri türünü dize olarak değil not olarak tanıması gerekir.

  • Mevcut bir hedef tablo zaten veri satırları içeriyorsa, sürücü tarafından örneklenen ilk birkaç satır not sütununda 255 karakterden uzun bir değerin en az bir örneğini içermelidir.