Excel VBA kullanarak bir web sunucusuna XML dizesi veya dosyası göndermek için temel bir komut dosyası ve verileri almak için basit bir PHP komut dosyası hazırladım. İşlem XMLHTTP kullanır.
Amaç, bir elektronik tablodan oluşturulan XML verileriyle bir sunucuyu güncellemek için basit bir yükleme komut dosyası oluşturmaktır. Ardından, birden çok son kullanıcı çalışma kitabının merkezi dosyayla eşlenmesini ve ondan raporlar oluşturmasını sağlayın. Temel somun ve cıvatalar:
Örnek için şuna benzeyen temel bir XML dizesi kullanıyorum:
1234567891011 | myxml = "<?xml version=""1.0""?>" & _"" & _"erkek polo" & _"4.89" & _"büyük" & _"" |
Kullandığım PHP, yalnızca Excel'e geri gönderildiği verileri döndürür. Yani bir mesaj kutusuna gönderdiğiniz XML verisinin aynısını alıyorsanız, bunu doğru yapmışsınız demektir. Gönderi verileri bulunamazsa “zar yok” der. Test URL'sinin konumu /pl/xlxml.php
Açıkçası, pratik kullanımlar için dosya içeriğini sunucunuza kaydetmek için komut dosyasını güncellemek isteyeceksiniz. XML gönderi verilerini almak ve geri döndürmek için PHP:
1234567891011121314151617 |
Artık ne gönderdiğimizi ve nasıl alacağımızı biliyoruz, hadi XML verilerini gönderelim!
Aşağıdaki kod Excel 2003'te ve VB düzenleyicide Araçlar->Başvurular->Microsoft XML v5.0'a başvuru kullanılarak oluşturulmuştur. Olan her şeyi görebilmeniz için iyi yorumlanmıştır:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | Alt SendXML()'HTTP değişkeniMyHTTP'yi MSXML2.XMLHTTP Olarak Karartın'HTTP nesnesimyHTTP = CreateObject("msxml2.xmlhttp") olarak ayarlayın'dom belge değişkeni oluştur'gönderilecek xml'yi depolarMSXML2.DOMDocument Olarak myDom Dim'DomDocument Nesnesini OluşturunmyDom = CreateObject("MSXML2.DOMDocument") olarak ayarlayın'Devam etmeden önce Belgenin tamamını yükleyinmyDom.async = Yanlış'xml dize değişkeni'dosyadan veya URL'den gönderiliyorsa konumla değiştirinDim myxml As Stringmyxml = "<?xml version=""1.0""?>" & _"" & _"erkek polo" & _"4.89" & _"büyük" & _""'xml'yi yükler'dosya veya url için .Load olarak değiştirinmyDom.loadXML (myxml)'bağlantıyı açmyHTTP."Gönderiyi" aç, _"https://www.automateexcel.com/excel/pl/xlxml.php", Yanlış'XML'yi göndermyHTTP.Send (myDom.XML)'Cevabı gösterMsgBox myHTTP.ResponseTextAlt Bitiş |
Buraya kadar geldiyseniz, bir referans eklediyseniz ve kodu çalıştırdıysanız, PHP'nin gerçekten de XML'i aldığını ve döndürdüğünü göreceksiniz:
Notlar: XML'i yalnızca dinamik olarak oluşturdum veya XML dosyalarından ve URL'lerden yükledim, sonraki adım bir XML haritasından veri göndermek.
URL herkese açık olduğu için verileri sunucuya yazmak yerine Excel'e geri gönderdim, insanlara bir sanal alan vermek ve sunucuma rastgele dosyalar gönderilmemesini istedim.