Olen koostanud põhiskripti XML -stringi või faili saatmiseks veebiserverisse, kasutades Excel VBA -d, ja lihtsa PHP -skripti andmete vastuvõtmiseks. Protsess kasutab XMLHTTP -d.
Eesmärk on luua lihtne üleslaadimisskript, et värskendada arvutustabelist loodud XML -andmetega serverit. Seejärel laske mitu lõppkasutaja töövihikut keskse faili kaardistada ja sellest aruandeid luua. Peamised mutrid ja poldid:
Näites kasutan põhilist XML -stringi, mis näeb välja selline:
1234567891011 | myxml = "<? xml version =" "1.0" "?>" & _"" & _"meeste polo" & _"4.89" & _"suur" & _"" |
Minu kasutatav PHP tagastab lihtsalt andmed, mis nad Excelisse tagasi saadeti. Nii et kui saate samad XML -andmed, mille te sõnumikasti saatsite, olete seda õigesti teinud. Kui postituse andmeid ei leita, ütleb see "täringuid pole". Testi URL -i asukoht on /pl/xlxml.php
Ilmselt soovite skripti värskendada, et faili sisu oma serverisse praktiliseks kasutamiseks salvestada. Siin on PHP XML -postituse andmete saamiseks ja tagastamiseks:
1234567891011121314151617 |
Nii et me teame nüüd, mida me saadame ja kuidas seda vastu võtta, saatkem XML -andmed!
Järgmine kood loodi Excel 2003-s ja kasutades VB-redaktoris viidet Tööriistad-> Viited-> Microsoft XML v5.0. See on hästi kommenteeritud, nii et näete kõike, mis toimub:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | Sub SendXML ()'HTTP muutujaDim myHTTP kui MSXML2.XMLHTTP'HTTP objektMäära myHTTP = CreateObject ("msxml2.xmlhttp")'luua dom dokumendi muutuja'salvestab saatmiseks xml -iDim myDom kui MSXML2.DOMDocument"Looge objekt DomDocumentMäära myDom = CreateObject ("MSXML2.DOMDocument")'Laadige kogu dokument enne jätkamistmyDom.async = Vale'xml stringide muutuja"asendage asukohaga, kui saadate failist või URL -istDim myxml stringinamyxml = "<? xml version =" "1.0" "?>" & _"" & _"meeste polo" & _"4.89" & _"suur" & _""'laadib xml'muutke. Laadi fail või URLmyDom.loadXML (myxml)'avage ühendusmyHTTP. Avage "postitus", _"https://www.automateexcel.com/excel/pl/xlxml.php", vale'saatke XMLmyHTTP.Send (myDom.XML)'Kuva vastusMsgBox myHTTP.ResponseTextEnd Sub |
Kui olete nii kaugele jõudnud, lisanud viite ja käivitanud koodi, näete, et tõepoolest sai PHP XML -i ja tagastab selle:
Märkused. Olen XML -i dünaamiliselt loonud või laadinud selle XML -failidest ja URL -idest, järgmiseks tuleb saata andmed XML -kaardilt.
Kajasin andmed serverisse kirjutamise asemel tagasi Excelisse, kuna URL on avalik, tahtsin anda inimestele liivakasti ja mitte lasta juhuslikke faile serverisse saata.