TKGM den excel ile sorgulama yapmak ve bilgi almak mümkün müdür?

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
638
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Ekli MS Excel dosyasını kullanabilirsiniz....

Haluk Hocam, elinize sağlık, çok teşekkür ederim.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
638
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
İşin ilginç tarafı, aşağıdaki resimde olduğu gibi İlçeleri bazen sorunsuz ("ı", "i" karmaşası olmadan) getiriyor....

Ekli dosyayı görüntüle 239038

.
Sayın Haluk Hocam ;

Benim bu scripti kullanma becerim maalesef yoktur.

İl-İlçe-Mahalle ve Mahalle kodları olan bir listeyi paylaşmanız mümkün olurmu ?

Saygılar iyi geceler
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Tevfik Bey, haberler iyi .....

Aşağıdaki görselde belirtildiği gibi siz sadece Mahalle ID, Ada ve Parsel'i gireceksiniz...... gerisini, sunucuya yolladığımız sorgudan geri dönen cevaptan alıp sayfaya işliyoruz....


Ekli dosyayı görüntüle 238998


Görseldeki işi yapan script aşağıda verilmiştir;

JavaScript:
function getData_mahalleID() {
  var myArr=["İL","İLÇE","MAHALLE","MEVKİİ","ZEMİN DURUM","NİTELİK","ALAN","PAFTA"];
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  ss.getRange('C1:J1').setValues([myArr])

  const dataRange = ss.getRange('A2:A');
  const values = dataRange.getValues().filter(array=>array != '');

  for(var j = 0; j < values.length; j++) {
    var iRow = j+2

    var mahalleID = ss.getRange('A'+ iRow ).getValue();
    var adaParsel = ss.getRange('B'+ iRow ).getValue()
  
    var url='https://cbsapi.tkgm.gov.tr/megsiswebapi.v3/api/parsel/' + mahalleID + '/' + adaParsel
  
    try {
      var httpResponse = UrlFetchApp.fetch(url,{'muteHttpExceptions': true});
        } catch (e) {httpResponse.getResponseCode();
        Browser.msgBox('Hata var...!\\n\\n' + e.toString(), Browser.Buttons.OK);
        return;
      }
    
    var responseContent = httpResponse.getContentText();
    var responseCode = httpResponse.getResponseCode();

    if (responseCode == 200) {
      objJSON = JSON.parse(responseContent);
    
      // objJSON elemanlari >>> "type", "Feature", "geometry", "properties"
      // Aradigimiz veriler "properties" nesnesi icinde 

        ss.getRange(j+2,3).setValue(objJSON.properties['ilAd']);
        ss.getRange(j+2,4).setValue(objJSON.properties['ilceAd']);
        ss.getRange(j+2,5).setValue(objJSON.properties['mahalleAd']);
        ss.getRange(j+2,6).setValue(objJSON.properties['mevkii']);
        ss.getRange(j+2,7).setValue(objJSON.properties['zeminKmdurum']);
        ss.getRange(j+2,8).setValue(objJSON.properties['nitelik']);     
        ss.getRange(j+2,9).setValue(objJSON.properties['alan']);
        ss.getRange(j+2,10).setValue(objJSON.properties['pafta']);
    }
    else if (responseCode !== 200){
      ss.getRange(j+2,3).setValue(responseContent)
    }
  }
}

Not: Hatalı verilerle ilgili durumda, sayfaya sunucudan gelen mesaj yazdırılmaktadır....


Bu arada, @RBozkurt 'un eklediği dosyadaki Mahalle ID'leri de doğru görünüyor. Gerektiğinde oradan da faydalanabilirsiniz.


.
@Haluk ustam,
Müsait bir zamanda yukarıdaki çalışmada B sütununu bölerek B=Ada, C=Parsel şeklinde uyarlama imkanınız varmıdır?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@RBozkurt ;


TestHD.gif




JavaScript:
function getData_2() {
  var myArr=["MAHALLE ID","ADA", "PARSEL","İL","İLÇE","MAHALLE",
             "MEVKİİ","ZEMİN DURUM","NİTELİK","ALAN","PAFTA"];
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  ss.getRange('A1:K1').setValues([myArr])
  const dataRange = ss.getRange('A2:A');
  const values = dataRange.getValues().filter(array=>array != '');
  for(var j = 0; j < values.length; j++) {
    var iRow = j+2
  
    var mahalleID = ss.getRange('A'+ iRow ).getValue();
    var ada = ss.getRange('B'+ iRow ).getValue() + 0;
    var parsel = ss.getRange('C'+ iRow ).getValue() + 0;
    
    var url='https://cbsapi.tkgm.gov.tr/megsiswebapi.v3/api/parsel/' + mahalleID + '/' + ada + '/' + parsel ;
        
    try {
      var httpResponse = UrlFetchApp.fetch(url,{'muteHttpExceptions': true});
        } catch (e) {
          httpResponse.getResponseCode();
          Browser.msgBox('Hata var...!\\n\\n' + e.toString(), Browser.Buttons.OK);
          return;
      }
      
    var responseContent = httpResponse.getContentText();
    var responseCode = httpResponse.getResponseCode();
    if (responseCode == 200) {  
      objJSON = JSON.parse(responseContent);
      
      // objJSON elemanlari >>> "type", "Feature", "geometry", "properties"
      // Aradigimiz veriler "properties" nesnesi icinde   
        ss.getRange(j+2,4).setValue(objJSON.properties['ilAd']);
        ss.getRange(j+2,5).setValue(objJSON.properties['ilceAd']);
        ss.getRange(j+2,6).setValue(objJSON.properties['mahalleAd']);
        ss.getRange(j+2,7).setValue(objJSON.properties['mevkii']);
        ss.getRange(j+2,8).setValue(objJSON.properties['zeminKmdurum']);
        ss.getRange(j+2,9).setValue(objJSON.properties['nitelik']);       
        ss.getRange(j+2,10).setValue(objJSON.properties['alan']);
        ss.getRange(j+2,11).setValue(objJSON.properties['pafta']);
    }
    else if (responseCode !== 200){
      ss.getRange(j+2,4).setValue(responseContent);
    }
  }
}

.
 
Son düzenleme:

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
@Haluk ustam kodu normal bir excele atama yapsak problem olmaz değil mi?
Sizin dosyada vba kapalı farklı bir makro varmı bilmiyorum.

Ek olarak VBA koruma yöntemini paylaşabilirmisiniz? Şifre sorma kısmıda kapalı :)
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
-Kod, Google Script (JavaScript gibi birşey... diyelim) ile yazıldığı için VBA ile çalışmaz. VBA'de yeniden tasarlayıp, yazmak gerekir.

-VBA koruma yöntemi için @Zeki Gürsoy 'a müracaat edebilirsiniz. Bu konuda kendisinin geliştirdiği ücretli bir programı var.

.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
-Kod, Google Script (JavaScript gibi birşey... diyelim) ile yazıldığı için VBA ile çalışmaz. VBA'de yeniden tasarlayıp, yazmak gerekir.

-VBA koruma yöntemi için @Zeki Gürsoy 'a müracaat edebilirsiniz. Bu konuda kendisinin geliştirdiği ücretli bir programı var.

.
Daha önce eklediğiniz dosya normal excel olaraktı
 

Ekli dosyalar

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Scriptleri ayarladım. Kurumda google sheets kapalı. Açtırabilirsem kullanırız :)
Teşekkürler Sayın @Haluk
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,805
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaşlar,
Haklısınız, genelde pek çok kurumda GoogleDrive kullanmak bile mümkün değil. Herkesin ihtiyacı da farklı. Script ve VBA, Ada ve parsel numarası ve mahalle numarası olan noktalarda çok başarılı. Sadece parsel numarası olan noktaların neredeyse % 80 den fazlasına erişimde maalesef başarılı değil. Ben sorunumu KML dosyasını indirerek çözdüm. Bana tarlanın sadece alanı ve koordinatı gerekli, ama tüm bilgiler var içinde.
Belki arkadaşların işine yarayabilir diye konuyu paylaştım.
Herkese teşekkür ederim.
Saygılarımla
Kod:
<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>Güneykent Mahallesi 5263-parsel</name>
    <ExtendedData>
Örneklerde kullanılan parseldir, bilgilerine hem script hem de VBA de erişilememişti
 
Son düzenleme:

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
723
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Tüm mail, video, dosya yükleme, hotmail, Google vb. heryer kapalı
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Daha önce eklediğiniz dosya normal excel olaraktı
Siz Google Script ile ilgili mesajı referans gösterince, ben de oradaki script'i revize etmiştim. MS Excel ile hazırladığım dosyayı da, Mahalle ID'leri için hazırladım diye düşünmüştüm ama o da bununla ilgiliymiş. Anlayacağınız, konuyu karıştırmışım biraz....

Sonuçta, istediğiniz MS Excel dosyası ekte revize edilerek verilmiştir...

.
 

Ekli dosyalar

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,805
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Haluk Hocam,
İlginize çok teşekkür ederim. Ancak burada da 5263 parselin verileri gelmiyor. Ama kendi sitesinden çağırdığınızda geliyor. hem kml hem json ekli sonuç dosyaları indirilebiliyor.
Saygılarımla
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Tevfik Bey, son dosyayı sizin mesajınız üzerine değil, @RBozkurt 'un talebi üzerine göndermiştim.

.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,805
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Haluk Hocam,
Ben üzerime alınmamıştım, ama parsel bilgilerini getirmede bir sıkıntı olduğunu paylaşmıştım.
Saygılarımla
 
Üst