Excel, REST và XMLMAPS.Import so với WINHTTP

Mục lục

Vì một số lý do mà các dây không bao giờ vượt qua đúng cách đó; bởi vì bạn có thể nhập XML sang Excel trực tiếp từ một URL, không cần sử dụng WINHTTP để thực hiện các truy vấn dịch vụ web REST đơn giản.

Ban đầu, tôi bắt đầu sử dụng kỹ thuật này sau khi xem mã Amazon Web Services sử dụng WinHTTP, tuy nhiên, điều này không cần thiết khi chỉ yêu cầu XML từ một dịch vụ web.

Bằng chứng về khái niệm: Đây là một ví dụ rõ ràng về việc sử dụng API Tìm kiếm Tin tức của Yahoo để tải tin tức mới nhất của Yahoo về “Dan Rather” vào Excel. Điều này yêu cầu phiên bản Excel hỗ trợ XML:

1. Đánh dấu rồi sao chép URl này:

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

2. Trong Excel, đi tới Dữ liệu-> XML-> Nhập

3. Trong hộp Tên tệp, sử dụng Phím tắt Dán (CTRL-V) để nhập url bạn vừa sao chép và nhấn enter.

4. Excel sẽ nhắc bạn đến ô liệt kê Kết quả Yahoo News

Vì vậy, chúng tôi vừa quản lý để sử dụng Dịch vụ Yahoo Rest Webservice để lấy dữ liệu vào Excel mà không cần WINHTTP. Hãy nhớ rằng đó là ví dụ về xương trần. Để giải thích về nó, hãy thêm bản đồ vào sổ làm việc và sử dụng XMLMaps.import thay thế trong số các ví dụ về WINHTTP mà tôi đang sử dụng.

Tôi hiện tại sẽ sử dụng WINHTTP với dịch vụ web REST khi nào? Dự đoán tốt nhất của tôi cho đến nay:

1. Khi cần đăng nhập cho dịch vụ. Trong trường hợp đó tôi cần sử dụng SetCredentials

2. Khi tôi không muốn nhập dữ liệu XML vào một bản đồ XML, thay vào đó tôi chỉ muốn dữ liệu thô. Ví dụ: tôi muốn thao tác dữ liệu trước khi ghi nó vào bảng tính hoặc có thể điều hướng XML và chọn và chọn dữ liệu nào sẽ hiển thị dựa trên tiêu chí tùy chỉnh.

Cuối cùng, XMLMAPS.Import và WINHTTP đều hoạt động để sử dụng các dịch vụ web REST, tuy nhiên, dịch vụ sau yêu cầu thêm một vài dòng mã. Tôi sẽ tiếp tục loay hoay với Dịch vụ web cho đến khi tôi tìm hiểu nó (và tất nhiên: hãy hiểu chính xác). Tôi tự hỏi liệu có ai khác có bất kỳ ví dụ REST nào sử dụng Excel không?

wave wave wave wave wave