Tam metin 3149 Kelimeler, tahmini öğrenme süresi 9 dakika
Kaynak: Pexels
Excel hem bir nimet hem de bir lanettir.
Yeterince küçük veri ve yeterince basit işlemler söz konusu olduğunda, Excel kraldır. Ancak kendinizi bu alanlardan dışarı çıkmaya çalışırken bulduğunuzda bu bir acıya dönüşür.
Elbette bu sorunları çözmek için ExcelVBA'yı kullanabilirsiniz, ancak 2020'de neyse ki bunu yapmak zorunda değilsiniz!
Excel ve Python'u birbirine entegre etmenin bir yolu varsa, Excel ... kanatlara sahip olacaktır!
Şimdi var. Xlwings adlı bir python kitaplığı, kullanıcıların python komut dosyalarını VBA aracılığıyla çağırmasına ve ikisi arasında veri aktarmasına olanak tanır.
Python'u neden ExcelVBA ile entegre etmelisiniz?
Aslında, kullanıcılar VBA'da her şeyi yapabilir. Öyleyse, neden Python kullanalım? Pek çok neden var.
1. VBA'yı öğrenmek zorunda kalmadan Excel'de özel işlevler oluşturabilirsiniz (okuyucu henüz bilmiyorsa)
2. Kullanıcı Excel'den çok memnun
3. Python kullanmak veri manipülasyonunu önemli ölçüde hızlandırabilir
4. Python'da hemen hemen her şey (makine öğrenimi, veri bilimi vb.) İçin kitaplıklar vardır.
5. Çünkü yapabilirsiniz! ! !
Kullanmak istediğiniz herhangi bir yeni kütüphane gibi yapmanız gereken ilk şey onu kurmaktır. Bunu yapmak çok kolay; bu iki komutla yakında hazır olacak. Öyleyse, komutu terminale girin:
xlwings pipinstallKitaplığı indirip kurduktan sonra, Excel entegrasyon bölümünü kurmanız gerekir. Tüm Excel örneklerinin ve tüm terminal türlerinin kapalı olduğundan emin olun:
xlwings eklenti yüklemeHerhangi bir hatayla karşılaşılmadığını varsayarsak, devam edebilmelisiniz. Ancak, Win10 Excel2016'da insanlar genellikle aşağıdaki hataları görür:
xlwings0.17.0 Böyle bir dosya veya dizin yok: 'C: \ Users \ costa \ AppData \ Roaming \ Microsoft \ Excel \ XLSTART \ xlwings.xlam'Yukarıdaki hatayla karşılaşacak kadar şanslıysanız, tek yapmanız gereken eksik dizini oluşturmaktır. Bu, mkdir komutu kullanılarak kolayca yapılabilir. Yazar söz konusu olduğunda, yazar şunları yaptı:
mkdirC: \ Kullanıcılar \ costa \ AppData \ Roaming \ Microsoft \ Excel \ XLSTARTExcel ve python kitaplığının entegrasyonunun başarıyla kurulduğunu varsayarsak, excel'in temel farkını hemen fark edebilirsiniz:
Öncelikle, Excel eklentisini yüklemeniz gerekir. Alt, L, H'ye tıklayın ve ardından eklentiyi yüklemek için yukarıdaki dizine gidin. İşiniz bittiğinde, aşağıdakileri görebilmelisiniz:
Son olarak, VBA mühendislik nesne modeline güvenilir erişimi etkinleştirmeniz gerekir. "Dosya" ya gidebilirsiniz > Seçenekler > Güven merkezi > Güven Merkezi ayarları > Makro Ayarları "bunu yapmak için:
Excel'den Python'a (Python'dan Excel'e) iki ana yol vardır. Birincisi, Python komut dosyalarını doğrudan VBA'dan çağırmak, diğeri ise kullanıcı tanımlı işlevleri kullanmaktır. Her ikisine de hızlıca bakın.
Herhangi bir karışıklığı önlemek için, her seferinde doğru bir şekilde kurulabilir, xlwings, kullanıma hazır bir Excel elektronik tablosu oluşturma işlevi sağlar. Aşağıdaki bu işlevi kullanalım. Terminali kullanarak favori dizine gidin ve şunu yazın:
xlwingsquickstart Proje AdıBuna MyFirstPythonXL deyin. Yukarıdaki komut, önceden gezinilmiş dizinde, bir Excel çalışma sayfası ve bir python dosyası içeren yeni bir klasör oluşturacaktır.
.Xlsm dosyasını açtığınızda, xlwings.conf adında yeni bir Excel çalışma sayfasını hemen fark edebilirsiniz. Varsayılan xlwings ayarlarını geçersiz kılmak istiyorsanız, bu çalışma sayfasını yeniden adlandırın ve başlangıç alt çizgisini silin. Böylelikle hazırlık çalışmaları tamamlanmış olur, xlwings kullanmaya başlayalım.
Kodlamaya başlamadan önce hepimizin aynı sayfada olduğundan emin olun. ExcelVBA düzenleyicisini açmak için Alt + F11 tuşlarına basın. Bu, aşağıdaki ekrana dönecektir:
Xlwings ile VBA editörü
Burada dikkat edilmesi gereken en önemli şey, bu kodun aşağıdakileri yapacağıdır:
1. Python komut dosyasını elektronik tablo ile aynı konumda bulun
2. Elektronik tablo ile aynı ada sahip Python komut dosyasını bulun (ancak uzantısı .py'dir)
3. Bir Python betiğinden "main ()" işlevini çağırın
Eve daha yakından bakalım, birkaç kullanım örneğine göz atalım.
Örnek 1: Excel dışında çalışın ve çıktıyı geri verin
Bu örnekte, Excel dışında işlemlerin nasıl gerçekleştirileceğini göreceksiniz, ancak ardından sonuçları elektronik tabloya döndüreceksiniz. Bunun sonsuz sayıda kullanım durumu olabilir.
CSV dosyasından veri alın, verileri değiştirin ve ardından çıktıyı Excel'e iletin. Bu işlem çok basit:
İlk olarak, VBA kodu:
Varsayılan ayarlardan tamamen değişmeden kalır.
Ardından, Python kodu:
xwimport pandaları olarak importxlwings pddef main (): wb = xw.Book.caller () df = pd.read_csv (r'C: \ temp \ TestData.csv ') df = df + df wb.sheets.range (' A1 ') .value = dfSonuçlar aşağıdaki gibidir:
Örnek 2: İşlemleri yürütmek için Excel girdisini kullanın
Bu örnekte, girdi Excel'den okunur, Python'da işlenir ve sonuç Excel'e geri aktarılır.
Daha spesifik olarak, şakaları bulabileceğiniz bir selamlama, bir isim ve bir dosya konumu okuyun. Ardından, Python betiği dosyadan rastgele bir satır çıkarır ve bir şaka döndürür.
İlk olarak, VBA kodu:
Varsayılan ayarlardan tamamen değişmeden kalır.
Ardından, Python kodu:
xwimport randomdef olarak importxlwings random_line (dosya): num için satır = next (dosya), numaralandırmada aline (afile, 2): if random.randrange (num): devam satırı = aline dönüş satırı'Function from: stackoverflowdef main (): wb = xw.Book.caller () listloc = str (wb.sheets.range ('B3']. değer) fhandle = open (listloc, kodlama = 'utf-8') wb.sheets.range ('A5') .value = wb.sheets.range ('B2']. değer + '' + wb.sheets.range ('B1'). değer + 'işte size bir şaka' wb.sheets.range ('A6') .value = random_line (fhandle)Sonuç:
Python dosyasındaki kodu neredeyse aynı şekilde değiştirin. Bir şeyi Excel kullanıcı tanımlı bir işleve dönüştürmek için, işlevin bulunduğu satırdan önce yalnızca "@ xw.func" eklememiz gerekir:
Python kodu:
xw@xw.funcdef joke (x) olarak importxlwings: wb = xw.Book.caller () fhandle = open (r'C: \ Temp \ list.csv ') i için, numaralandırmada satır (fhandle): if i = = x: return (satır)Sonuçlar:
Xiaoxin gibiyseniz ve VBA yerine Python kullanmayı tercih ediyorsanız, ancak aynı zamanda elektronik tablolar da kullanmanız gerekiyorsa, bu araç sizin için en iyi seçimdir.Ona güzel, küçük bir veritabanı olarak bakabilirsiniz.
Yorum Beğen Takip Et
Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım
Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun