Aracılığıyla paylaş


Excel dosyalarında SQL sorguları çalıştırma

Excel eylemleri, çoğu Excel otomasyonu senaryolarını işleyebilse de, SQL sorguları çok önemli miktarda Excel verilerini daha verimli şekilde alıp işleyebilir.

Bir akışın yalnızca belirli bir değeri içeren Excel kayıt defterlerinin üzerinde değişiklik yapması gerektiğini varsayalım. Bu işlevi SQL sorguları olmadan başarmak için döngülere, koşullara ve birden çok Excel eylemlerine ihtiyacınız vardır.

Alternatif olarak bu işlevi, SQL sorgularıyla yalnızca iki eylem kullanarak gerçekleştirebilirsiniz: SQL bağlantısı aç ve SQL deyimlerini yürüt eylemi.

Excel dosyasına SQL bağlantısı açma

Bir SQL sorgusu çalıştırmadan önce, erişmek istediğiniz Excel dosyasıyla bir bağlantı açmanız gerekir.

Bağlantıyı kurmak için, %Excel_File_Path% adlı yeni bir değişken oluşturun ve bunu Excel dosya yolu ile başlatın. İsteğe bağlı olarak, bu adımı atlayabilir ve dosyanın daha sonra akışta kodlanmış yolunu kullanabilirsiniz.

Excel dosyası yoluyla doldurulan Değişken ayarla eyleminin ekran görüntüsü.

Ardından SQL bağlantısı aç eylemini dağıtın ve aşağıdaki bağlantı dizesini özelliklerinde doldurun.

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%Excel_File_Path%;Extended Properties="Excel 12.0 Xml;HDR=YES";

Not

Sunulan bağlantı dizesini başarıyla kullanmak için, Microsoft Access Database Engine 2010 Redistributable'ı indirip yüklemeniz gerekir.

SQL bağlantısını aç eyleminin ekran görüntüsü.

Parola korumalı Excel dosyasına SQL bağlantısı açma

Parola korumalı Excel dosyalarında SQL sorgularını çalıştırdığınız senaryolarda farklı bir yaklaşım gereklidir. SQL bağlantısı aç eylemi, parolayla korunan Excel dosyalarına bağlanamaz, bu nedenle korumayı kaldırmanız gerekir.

Bunu yapmak için, Excel'i başlat eylemini kullanarak Excel dosyasını başlatın. Dosya parola korumalıdır, bu nedenle Parola alanına uygun parolayı girin.

Excel'i başlat eyleminin ve Parola alanının ekran görüntüsü.

Ardından, uygun kullanıcı arabirimi otomasyonu eylemlerini dağıtın ve Dosya>Bilgiler>Çalışma kitabını koru>Parola ile şifrele'ye gidin. Kullanıcı arabirimi otomasyonu ve ilgili eylemleri kullanma hakkında daha fazla bilgi için bkz. Masaüstü uygulamalarını otomatikleştirme.

Parolayla Şifrele seçeneğini belirlemek için kullanılan UI eylemlerinin ekran görüntüsü.

Parolayla şifrele seçeneğini belirledikten sonra, Pencerede metin alanını doldur eylemini kullanarak açılan iletişim kutusunda boş bir dize doldurun. Boş bir dizeyi doldurmak için şu deyimi kullanın: %""%.

Penceredeki metin alanını doldur eyleminin ekran görüntüsü.

İletişim kutusundaki Tamamdüğmesine basmak ve değişiklikleri uygulamak için, Pencerede düğmeye bas eylemini dağıtmanız gerekir

Pencerede düğmeye bas eyleminin ekran görüntüsü.

Son olarak, korumalı olmayan çalışma kitabını yeni bir Excel dosyası olarak kaydetmek için Excel'i kapat eylemini dağıtın.

Belgeyi farklı kaydet seçeneğinin seçili olduğu Excel'i Kapat eyleminin ekran görüntüsü.

Dosyayı kaydettikten sonra, dosyaya bağlantı açmak için Bir Excel dosyasına SQL bağlantısı açma bölümündeki talimatları izleyin.

Excel dosyasının düzenlemesi tamamlandığında, Excel dosyasının korumalı olmayan kopyasını silmek için Dosyaları sil eylemini kullanın.

Dosyaları sil eyleminin ekran görüntüsü.

Excel elektronik tablosunun içeriğini okuma

Excel çalışma sayfasından oku eylemi, Excel çalışma sayfasının içeriğini okuyabilse de, döngüler alınan verilerde yineleme yapmak için çok zaman alabilir.

Elektronik tablolardan belirli değerleri almanın daha etkin bir yolu, Excel dosyalarını veritabanları olarak değerlendirmek ve bunlar üzerinde SQL sorguları yürütmedir. Bu yaklaşım daha hızlıdır ve akışın performansını artırır.

Bir elektronik tablonun tüm içeriğini almak için, SQL deyimi yürüt eyleminde aşağıdaki SQL sorgusunu kullanabilirsiniz.

SELECT * FROM [SHEET$]

SELECT sorgusuyla doldurulan SQL deyimlerini yürüt eyleminin ekran görüntüsü.

Not

Bu SQL sorgusunu akışlarınıza uygulamak için, SHEET yer tutucusunu, erişmek istediğiniz elektronik tablonun adıyla değiştirin.

Belirli bir sütunda belirli bir değeri içeren satırları almak için aşağıdaki SQL sorgusunu kullanın:

SELECT * FROM [SHEET$] WHERE [COLUMN NAME] = 'VALUE'

Not

Bu SQL sorgusunu akışlarınıza uygulamak için aşağıdakileri değiştirin:

  • Erişmek istediğiniz elektronik tablonun adı yerine SHEET.
  • COLUMN NAME, bulmak istediğiniz değeri içeren sütun ile. Excel çalışma sayfasının ilk satırındaki sütunlar, tablonun sütun adları olarak tanımlanır.
  • Bulmak istediğiniz değer yerine VALUE.

Excel satırından veri silme

Excel, DELETE SQL sorgusunu desteklemiyor olsa da belirli bir satırın tüm hücrelerini null olarak ayarlamak için UPDATE sorgusunu kullanabilirsiniz.

Daha net olmak gerekirse aşağıdaki SQL sorgusunu kullanabilirsiniz:

UPDATE [SHEET$] SET [COLUMN1]=NULL, [COLUMN2]=NULL WHERE [COLUMN1]='VALUE'

UPDATE sorgusuyla doldurulan SQL deyimlerini yürüt eyleminin ekran görüntüsü.

Akışınızı geliştirirken, SHEET yer tutucusunu, erişmek istediğiniz elektronik tablonun adıyla değiştirmeniz gerekir.

COLUMN1 ve COLUMN2 yer tutucuları, işlenecek sütunların adlarını temsil eder. Bu örnekte, iki sütun vardır ancak gerçek bir senaryoda sütunların sayısı farklı olabilir. Excel çalışma sayfasının ilk satırındaki sütunlar, tablonun sütun adları olarak tanımlanır.

Sorgunun [COLUMN1]='VALUE' bölümü, güncelleştirmek istediğiniz satırı tanımlar. Akışınızda, hangi bileşimin satırları benzersiz tanımladığına bağlı olarak sütun adı ve değerini kullanın.

Belirli bir satır dışında Excel verilerini alma

Bazı senaryolarda, belirli bir satır dışında bir Excel elektronik tablosunun tüm içeriğini almanız gerekebilir.

Bu sonuca ulaşmanın kolay bir yolu, istenmeyen satırın değerlerini boş olarak ayarlamak ve ardından boş olanlar dışındaki tüm değerleri almak olabilir.

Elektronik tablodaki belirli bir satırın değerlerini değiştirmek için, bir UPDATE SQL sorgusu kullanabilirsiniz, bkz. Excel satırından veri silme:

UPDATE [SHEET$] SET [COLUMN1]=NULL, [COLUMN2]=NULL WHERE [COLUMN1]='VALUE'

UPDATE sorgusuyla doldurulan SQL deyimlerini yürüt eyleminin ekran görüntüsü.

Sonra, null değerler içermeyen elektronik tablonun tüm satırlarını almak için aşağıdaki SQL sorgusunu çalıştırın:

SELECT * FROM [SHEET$] WHERE [COLUMN1] IS NOT NULL OR [COLUMN2] IS NOT NULL

COLUMN1 ve COLUMN2 yer tutucuları, işlenecek sütunların adlarını temsil eder. Bu örnekte, iki sütun vardır ancak gerçek bir tabloda sütunların sayısı farklı olabilir. Excel çalışma sayfasının ilk satırındaki tüm sütunlar, tablonun sütun adları olarak tanımlanır.