Sestavil jsem základní skript pro odeslání řetězce nebo souboru XML na webový server pomocí aplikace Excel VBA a jednoduchý skript PHP pro příjem dat. Tento proces používá XMLHTTP.
Cílem je vytvořit jednoduchý nahrávací skript pro aktualizaci serveru pomocí dat XML vytvořených z tabulky. Poté nechejte více sešitů koncových uživatelů namapovat na centrální soubor a vytvořit z něj zprávy. Základní matice a šrouby:
Pro příklad používám základní řetězec XML, který vypadá takto:
1234567891011 | myxml = "<? xml version =" "1.0" "?>" & _"" & _"pánské pólo" & _"4,89" & _"velký" & _"" |
PHP, které jsem použil, jednoduše vrací data, která byla odeslána zpět do Excelu. Pokud tedy obdržíte stejná data XML, která jste poslali do pole se zprávou, udělali jste to správně. Pokud nejsou nalezena žádná data příspěvku, říká „žádné kostky“. Umístění testovací adresy URL je /pl/xlxml.php
Očividně budete chtít aktualizovat skript a uložit obsah souboru na váš server pro praktické použití. Zde je PHP pro příjem dat XML příspěvků a jejich vrácení:
1234567891011121314151617 |
Nyní tedy víme, co posíláme a jak to přijímat, pošleme data XML!
Následující kód byl vytvořen v aplikaci Excel 2003 a pomocí odkazu na Nástroje-> Reference-> Microsoft XML v5.0 v editoru VB. Je to dobře komentované, takže můžete vidět vše, co se děje:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | Sub SendXML ()'Proměnná HTTPDim myHTTP As MSXML2.XMLHTTP„Objekt HTTPNastavit myHTTP = CreateObject ("msxml2.xmlhttp")'create dom document variable'ukládá xml k odesláníDim myDom As MSXML2.DOMDocument'Vytvořte objekt DomDocumentNastavit myDom = CreateObject ("MSXML2.DOMDocument")„Než budete pokračovat, nahrajte celý dokumentmyDom.async = Falešný'xml proměnná řetězce'při odesílání ze souboru nebo adresy URL nahradit umístění.'Dim myxml jako řetězecmyxml = "<? xml version =" "1.0" "?>" & _"" & _"pánské pólo" & _"4,89" & _"velký" & _""'načte xml'změnit na .Načíst soubor nebo URLmyDom.loadXML (myxml)'otevřete připojenímyHTTP.Open "post", _"https://www.automateexcel.com/excel/pl/xlxml.php", Nepravda'pošlete XMLmyHTTP.Send (myDom.XML)„Zobrazte odpověďMsgBox myHTTP.ResponseTextEnd Sub |
Pokud jste se dostali až sem, přidali jste odkaz a spustili kód, uvidíte, že PHP skutečně přijalo a vrátilo XML:
Poznámky: XML jsem vytvořil pouze dynamicky nebo jej načíst ze souborů XML a adres URL, další je odesílání dat z mapy XML.
Vrátil jsem data zpět do Excelu místo toho, abych je zapsal na server, protože adresa URL je veřejná, chtěl jsem dát lidem sandbox a ne odesílat na můj server náhodné soubory.