Excel, REST i XMLMAPS.Import a WINHTTP

Spisie treści

Z jakiegoś powodu przewody nigdy nie przekroczyły tego; ponieważ możesz importować XML do Excela bezpośrednio z adresu URL, nie ma potrzeby używania WINHTTP do wykonywania prostych zapytań usług sieci Web REST.

Początkowo zacząłem używać tej techniki po obejrzeniu kodu Amazon Web Services, który używa WinHTTP, jednak nie jest to konieczne tylko do żądania XML z usługi internetowej.

Proof of Concept: Oto prosty przykład wykorzystania interfejsu API wyszukiwania Yahoo News do pobierania najnowszych wiadomości Yahoo na temat „Dan Rather” do programu Excel. Wymaga to wersji programu Excel obsługującej XML:

1. Zaznacz, a następnie skopiuj ten adres URL:

http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=YahooDemo&query=Dan+Rather&results=10

2. W Excelu przejdź do Dane-> XML-> Importuj

3. W polu Nazwa pliku użyj skrótu do wklejania (CTRL-V), aby wprowadzić skopiowany adres URL i naciśnij Enter.

4. Excel poprosi Cię o komórkę, aby wyświetlić wyniki Yahoo News

Udało nam się więc użyć usługi internetowej Yahoo Rest, aby pobrać dane do Excela, bez WINHTTP. Pamiętaj, że to przykład z gołymi kośćmi. Aby to wyjaśnić, dodaj mapę do skoroszytu i użyj XMLMaps.import zamiast z przykładów WINHTTP, których używałem.

Kiedy obecnie używam WINHTTP z usługami sieciowymi REST? Moje najlepsze przypuszczenie do tej pory:

1. Gdy wymagane jest zalogowanie się do usługi. W takim przypadku muszę użyć SetCredentials

2. Kiedy nie chcę importować danych XML do mapy XML, chcę tylko surowych danych. Na przykład chcę manipulować danymi przed zapisaniem ich w arkuszu kalkulacyjnym lub ewentualnie nawigować po XML i wybierać dane do wyświetlenia na podstawie niestandardowych kryteriów.

Wreszcie, XMLMAPS.Import i WINHTTP działają w przypadku korzystania z usług internetowych REST, jednak ten ostatni wymaga kilku dodatkowych wierszy kodu. Będę potykał się z usługami sieciowymi, dopóki się tego nie nauczę (i oczywiście: zdobędę to poprawnie). Zastanawiam się, czy ktoś jeszcze ma jakieś przykłady REST przy użyciu programu Excel?

wave wave wave wave wave