Genel Bakış
WEBHİZMETİ (WEBSERVICE), verilen web adresine bir GET isteği gönderir ve sunucunun döndürdüğü yanıtı metin olarak verir. REST arayüzü sunan bir hizmetten ya da XML dosyasından veriyi doğrudan hücreye almak için kullanılır. Yanıtın belirli bölümlerini ayıklamak için genellikle XMLFİLTRELE ile birlikte kullanılır.
İşlev, yanıtın tamamını tek bir metin olarak döndürür. Yanıtın yalnızca bir bölümünü almak için sonucu SOLDAN gibi bir metin işleviyle ya da XMLFİLTRELE ile işleyin. Adresin içinde Türkçe karakter, boşluk veya özel karakter bulunan parametre değerleri varsa bu değerleri URLKODLA ile kodlayın.
Sonuçlar sırasıyla <?xml version="1.0" , <?xml version="1.0" ve <?xml version="1.0" olur. WEBHİZMETİ, adrese bir GET isteği gönderir ve yanıtın tamamını metin olarak döndürür; SOLDAN ise bu metnin yalnızca başındaki 20 karakteri alır. Bu sayede çok uzun bir yanıtı hücreye sığdırmadan içeriğin türünü kontrol edebilirsiniz. Sonuç, bağlantının çalışmasına ve sunucunun yanıt vermesine bağlıdır.
Sonuçlar sırasıyla #DEĞER!, #DEĞER! ve #DEĞER! olur. İşlev yalnızca http ve https protokollerinde çalışır; ftp:// ve file:// ile başlayan adreslerde ve geçerli olmayan adreslerde #DEĞER! hatası verir. Bu hatayı yakalamak gerekirse WEBHİZMETİ formülünü EĞERHATA içine alabilirsiniz.
Sonuçlar sırasıyla <?xml , <?xml ve <?xml olur. URLKODLA, İ, Ç, ş gibi karakterleri adreslerde güvenle kullanılabilecek biçime çevirir; böylece adres geçerli kalır. Bu örnekteki sunucu duran bir XML dosyası verdiği için parametreyi yok sayar. Gerçek bir hizmette yanıt, gönderilen şehre göre değişir.
Sonuçlar sırasıyla Tove, Jani ve Reminder olur. WEBHİZMETİ XML yanıtını metin olarak getirir; XMLFİLTRELE ise XPath ifadesiyle bu metindeki ilgili öğeyi bulur. Böylece aynı yanıttan farklı alanları ayrı hücrelere alabilirsiniz.
Söz dizimi ve parametre
- Kategori
- Web
- İngilizce adı
- WEBSERVICE
- Platform
- Windows
1 bağımsız değişken
1 zorunlu
| Bağımsız değişken | Durum | Ne işe yarar |
|---|---|---|
| urlurl | Zorunlu | Yanıtı alınacak web hizmetinin veya web sayfasının adresini belirtir; http ya da https ile başlayan bir metin olmalıdır. |
Geçerli kullanımlar
=WEBHİZMETİ(A2)
Desteklenen Excel sürümleri
2013 ve sonrası
- 2003 Desteklenmiyor
- 2007 Desteklenmiyor
- 2010 Desteklenmiyor
- 2013 Destekleniyor
- 2016 Destekleniyor
- 2019 Destekleniyor
- 2021 Destekleniyor
- 2024 Destekleniyor
- 365 Destekleniyor
1. Yanıtın ilk karakterlerini okuma
Üç farklı XML kaynağının yanıtının yalnızca ilk 20 karakterini görmek isteyelim. Adresler B sütunundadır. C2 hücresine aşağıdaki formülü yazıp aşağı kopyalayın:=SOLDAN(WEBHİZMETİ(B2);20)
=LEFT(WEBSERVICE(B2),20)
WEBHİZMETİ
Formülünü incelemek için bir hücre seçin.| A | B | C | |
|---|---|---|---|
| 1 | Hizmet | Adres | Yanıtın ilk 20 karakteri |
| 2 | Not örneği | https://www.w3schools.com/xml/note.xml | <?xml version="1.0" |
| 3 | Bitki kataloğu | https://www.w3schools.com/xml/plant_catalog.xml | <?xml version="1.0" |
| 4 | Müzik kataloğu | https://www.w3schools.com/xml/cd_catalog.xml | <?xml version="1.0" |
TemelExcelDepo v1.0.0
2. Desteklenmeyen adresler ve hata durumu
Her adres çalışmaz. Protokolü desteklenmeyen ya da geçerli bir adres olmayan değerler hata verir. B sütunundaki adreslerin her biri için C2 hücresine aşağıdaki formülü yazıp aşağı kopyalayın:=WEBHİZMETİ(B2)
=WEBSERVICE(B2)
WEBHİZMETİ
Formülünü incelemek için bir hücre seçin.| A | B | C | |
|---|---|---|---|
| 1 | Durum | Adres | Sonuç |
| 2 | FTP protokolü | ftp://ftp.ornek.com/veri.xml | #DEĞER! |
| 3 | Dosya protokolü | file:///C:/veri.xml | #DEĞER! |
| 4 | Geçersiz adres | bu bir adres değil | #DEĞER! |
HatalarExcelDepo v1.0.0
3. Adres parametresini URLKODLA ile kodlama
Adrese eklenen değerde Türkçe karakter ya da boşluk varsa değeri URLKODLA ile kodlamak gerekir. A sütunundaki şehir adlarını adrese parametre olarak ekleyen formülü B2 hücresine yazıp aşağı kopyalayın; yanıtın ilk 6 karakteri alınır:=SOLDAN(WEBHİZMETİ("https://www.w3schools.com/xml/note.xml?sehir="&URLKODLA(A2));6)
=LEFT(WEBSERVICE("https://www.w3schools.com/xml/note.xml?sehir="&ENCODEURL(A2)),6)
WEBHİZMETİ
Formülünü incelemek için bir hücre seçin.| A | B | |
|---|---|---|
| 1 | Şehir | Yanıtın ilk 6 karakteri |
| 2 | İstanbul | <?xml |
| 3 | Çanakkale | <?xml |
| 4 | Kahramanmaraş | <?xml |
KodlamaExcelDepo v1.0.0
4. XML yanıtından değer ayıklama
Yanıt XML ise tamamını hücreye almak yerine ihtiyacınız olan öğeyi XMLFİLTRELE ile ayıklayabilirsiniz. A sütunu adresi, B sütunu XPath ifadesini içerir. C2 hücresine aşağıdaki formülü yazıp aşağı kopyalayın:=XMLFİLTRELE(WEBHİZMETİ(A2);B2)
=FILTERXML(WEBSERVICE(A2),B2)
WEBHİZMETİ
Formülünü incelemek için bir hücre seçin.| A | B | C | |
|---|---|---|---|
| 1 | Adres | XPath | Ayıklanan değer |
| 2 | https://www.w3schools.com/xml/note.xml | //to | Tove |
| 3 | https://www.w3schools.com/xml/note.xml | //from | Jani |
| 4 | https://www.w3schools.com/xml/note.xml | //heading | Reminder |
XMLExcelDepo v1.0.0
Kullanırken dikkat edin
- url parametresi: url parametresi, GET isteğiyle yanıt alınacak adrestir. Bu bir REST arayüzünü çağırıp bilgi almak için kullanılabilir. İşlev hem https hem de http adreslerinde çalışır.
- #DEĞER! hatası veren durumlar: Aşağıdaki durumların tümünde işlev #DEĞER! hatası verir:
- url 2048 karakterden uzunsa.
- İnternet erişimi yoksa.
- Bir proxy sunucusuyla çalışıyorsanız.
- url geçerli bir adres değilse.
- Alınan yanıt geçerli değilse.
- Yanıt 32.767 karakterden uzunsa.
- Kullanılan protokol ftp:// ise.
- Kullanılan protokol file:// ise.
- Yanıtın boyutu: Bir hücre en fazla 32.767 karakter alabildiği için daha uzun yanıtlar hata verir. Yanıtın yalnızca bir bölümüne ihtiyacınız varsa sonucu SOLDAN ile kısaltabilir ya da XMLFİLTRELE ile gerekli öğeyi ayıklayabilirsiniz.
- Sürüm: İşlev Excel 2013 ile eklenmiştir; daha eski sürümlerde bulunmaz.
- İlgili işlevler:
- URLKODLA: Adrese eklenecek parametre değerlerini URL kodlu metne çevirir; değerde boşluk, Türkçe karakter veya özel karakter varsa WEBHİZMETİ ile birlikte tercih edin.
- XMLFİLTRELE: WEBHİZMETİ'nin döndürdüğü XML metninden XPath ile belirli bir öğeyi alır; yanıtın tamamı yerine tek bir alan gerekiyorsa kullanın.
- SOLDAN: Uzun yanıtın yalnızca başındaki karakterleri göstermek için kullanın.
- EĞERHATA: Bağlantı kurulamadığında #DEĞER! yerine okunaklı bir mesaj göstermek istediğinizde tercih edin.
Desteklenen Excel sürümleri
- Microsoft 365
- Excel 2013
- Excel 2016
- Excel 2019
- Excel 2021
- Excel 2024