Sestavil sem osnovni skript za pošiljanje niza ali datoteke XML v spletni strežnik z uporabo Excela VBA in preprost skript PHP za sprejem podatkov. Proces uporablja XMLHTTP.
Cilj je ustvariti preprost skript za nalaganje za posodobitev strežnika s podatki XML, ustvarjenimi iz preglednice. Nato naj več delovnih zvezkov končnih uporabnikov preslika v osrednjo datoteko in iz nje ustvari poročila. Osnovne matice in vijaki:
Za primer uporabljam osnovni niz XML, ki izgleda takole:
1234567891011 | myxml = "<? xml version =" "1.0" "?>" & _"" & _"moški polo" & _"4,89" & _"velik" & _"" |
PHP, ki sem ga uporabil, preprosto vrne podatke, ki so bili poslani nazaj v Excel. Če ste torej prejeli iste podatke XML, ki ste jih poslali v polje za sporočila, ste to storili pravilno. Če ni podatkov o objavah, piše "brez kock". Lokacija preskusnega URL -ja je /pl/xlxml.php
Očitno boste želeli posodobiti skript in shraniti vsebino datoteke v strežnik za praktično uporabo. Tukaj je PHP za prejemanje podatkov XML objave in njihovo vrnitev:
1234567891011121314151617 |
Zdaj vemo, kaj pošiljamo, in kako to prejeti, pošljimo podatke XML!
Naslednja koda je bila ustvarjena v Excelu 2003 z uporabo sklica na Orodja-> Reference-> Microsoft XML v5.0 v urejevalniku VB. Dobro je komentirano, tako da lahko vidite vse, kar se dogaja:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | Sub SendXML ()'Spremenljivka HTTPZatemni myHTTP kot MSXML2.XMLHTTP'Objekt HTTPNastavi myHTTP = CreateObject ("msxml2.xmlhttp")'ustvari spremenljivko dokumenta dom'shrani xml za pošiljanjeZatemni myDom kot MSXML2.DOMDocument'Ustvarite predmet DomDocumentNastavi myDom = CreateObject ("MSXML2.DOMDocument")'Preden nadaljujete, naložite celoten dokumentmyDom.async = Napačno'xml spremenljivka niza'zamenjajte z lokacijo, če pošiljate iz datoteke ali URL -jaZatemni myxml kot nizmyxml = "<? xml version =" "1.0" "?>" & _"" & _"moški polo" & _"4,89" & _"velik" & _""'naloži xml'spremeni v. Naloži datoteko ali URLmyDom.loadXML (myxml)'odprite povezavomyHTTP.Odprite "objavo", _"https://www.automateexcel.com/excel/pl/xlxml.php", Napačno'pošljite XMLmyHTTP.Send (myDom.XML)'Prikažite odzivMsgBox myHTTP.ResponseTextEnd Sub |
Če ste prišli tako daleč, dodali sklic in zagnali kodo, boste videli, da je PHP res prejel in vrnil XML:
Opombe: XML sem ustvaril samo dinamično ali ga naložil iz datotek XML in URL -jev, naslednje je pošiljanje podatkov iz zemljevida XML.
Podatke sem odmeval nazaj v Excel, namesto da bi jih zapisal na strežnik, ker je URL javen, ljudem sem želel dati peskovnik in ne pošiljati naključnih datotek na moj strežnik.