Exceldeki veriyi otomatik olarak Firestore’a göndermek

Basri Ayaz
2 min readApr 10, 2021

--

Excel günlük hayatın çoğu yerinde karşımıza çıkan karmaşık matematiksel işlemleri kolayca çözmemize yarayan, verilerimizi düzenli bir biçimde saklamamızı sağlayan bir araç. Firestore ise genelde mobil programlama için kullandığımız bir veritabanı.

Alt kısımda göstereceğim yöntem sayesinde excel sayfanızdaki tüm verileri firestore’daki veritabanınıza tek tuşla anlık olarak gönderebileceksiniz. Bu veriler kullanıcılar hakkında bilgiler ya da excelde hesaplanmış karmaşık matematiksel ifadeler olabilir.

1 Bu özelliği kullanabilmeniz için firestore’un Rules kısmından okuma ve yazma iznini etkinleştirmeniz gerekiyor.

Eski kodu silip, rules kısmındaki yere bu kodu yazmanız yeterli olacaktır.

service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}

Not: Bu izinleri vermeniz güvenlik zafiyetine neden olabilir.

https://firestore.googleapis.com/v1/projects/projenizinadi/databases/(default)/documents/koleksiyonunuzunadi

Daha sonrasında yukarıda verdiğim linkin ‘projenizinadi’ ve ‘koleksiyonunuzunadi’ kısımlarını kendinize göre düzenlemeniz gerekiyor.

Bunları hallettikten sonra artık işin excel tarafındaki kısmına geçebiliriz.

Firestore’a veri gönderebilmemiz ve json formatına dönüştüreceğimiz verilerimiz için tools kısmından bazı kütüphaneleri aktif hale getirmemiz gerekiyor.

Excel Dosyamızda ALT+F11 yaptıktan sonra açılan ekranda Tools kısmından şu References’ları seçmeliyiz;

1 Microsoft Office 16.0 Object Library
2 Microsoft HTML Object Library
3 Microsoft XML, v6.0
4 Microsoft Forms 2.0 Object Library
5 Microsoft WinHTTP Services, version 5.1

Gerekli kütüphaneleri seçtikten sonra ‘ OK ’ tuşunu seçtikten sonra kodlarımızı yazmaya başlayabiliriz.

Sub FirestoreIslemleri()Dim URL As String
Dim JSONString As String
Dim objHTTP As New WinHttpRequest
JsonURL = "https://firestore.googleapis.com/v1/projects/projenizinadi/databases/(default)/documents/koleksiyonunuzunadi"objHTTP.Open "POST", JsonURL, False
objHTTP.setRequestHeader "Content-Type", "application/json"
JSONString = "Göndermek istediğimiz verileri JSON formatında buraya yazacağız."
objHTTP.send JSONString
End Sub

Son olarak yazan JSONString kısmındaysa durum biraz daha karışık. Bu yüzden sizin için bir örnek hazırladım. Bu örnek üzerinden değiştirmeler yapabilirsiniz.

“{“”fields””:{“”bilgi1””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a1”).Value & “””},””bilgi2””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a2”).Value & “””},””bilgi3””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a3”).Value & “””},””bilgi4””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a4”).Value & “””},””bilgi5””:{“”stringValue””:””idle””},””bilgi6””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a5”).Value & “””},””bilgi7””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a6”).Value & “””},””bilgi8””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a7”).Value & “””}}}”

JsonString = “{“”fields””:{“”bilgi1””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a1”).Value & “””},””bilgi2””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a2”).Value & “””},””bilgi3””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a3”).Value & “””},””bilgi4””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a4”).Value & “””},””bilgi5””:{“”stringValue””:””idle””},””bilgi6””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a5”).Value & “””},””bilgi7””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a6”).Value & “””},””bilgi8””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a7”).Value & “””}}}”

Son düzenlemelerden sonra kodumuz bu şekilde olmalı.

Sub FirestoreIslemleri()Dim URL As String
Dim JSONString As String
Dim objHTTP As New WinHttpRequest
JsonURL = "https://firestore.googleapis.com/v1/projects/projenizinadi/databases/(default)/documents/koleksiyonunuzunadi"objHTTP.Open "POST", JsonURL, False
objHTTP.setRequestHeader "Content-Type", "application/json"
JsonString = “{“”fields””:{“”bilgi1””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a1”).Value & “””},””bilgi2””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a2”).Value & “””},””bilgi3””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a3”).Value & “””},””bilgi4””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a4”).Value & “””},””bilgi5””:{“”stringValue””:””idle””},””bilgi6””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a5”).Value & “””},””bilgi7””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a6”).Value & “””},””bilgi8””:{“”stringValue””:””” & Sheets(“Sayfa1”).Range(“a7”).Value & “””}}}”
objHTTP.send JSONString
End Sub

Her şeyi doğru yaparsanız kodu çalıştırdığımız zaman Excel’de a sütunundaki verilerimiz otomatik olarak Firestore veritabanına gidecektir.

--

--