Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
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.
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.
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 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: %""%.
İletişim kutusundaki Tamamdüğmesine basmak ve değişiklikleri uygulamak için, Pencerede düğmeye bas eylemini dağıtmanız gerekir
Son olarak, korumalı olmayan çalışma kitabını yeni bir Excel dosyası olarak kaydetmek için Excel'i kapat eylemini dağıtın.
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.
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$]
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'
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'
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.