自定义函数 JSAWEBSERVICE 从Internet或Intranet上的Web服务返回数据
function JSAWEBSERVICE(url, init) {
url = url.valueOf();
init = (init === undefined || init === -2147352572) ? undefined : JSON.parse(init.valueOf());
var result;
var xhr = new XMLHttpRequest();
xhr.open(init ?. method || "GET", url, false);
if (init) {
for (let [k, v] of Object.entries(init)) {
xhr.setRequestHeader(k, v);
}
}
if (init ?. headers) {
for (let [k, v] of Object.entries(init.headers)) {
xhr.setRequestHeader(k, v);
}
}
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
result = xhr.responseText;
//const headers = xhr.getAllResponseHeaders();
//console.log(headers);
}
};
if ((init ?. method || "GET") == "POST") {
xhr.send(JSON.stringify(init.body));
} else {
xhr.send();
}
return result;
}插入函数对话框、函数参数对话框:
加载宏文件function Workbook_Open(){}中添加以下代码。
Application.MacroOptions("JSAWEBSERVICE","从Internet或Intranet上的Web服务返回数据。",undefined,undefined,undefined,undefined,14,undefined,undefined,undefined,["要调用的Web服务的URL","一个可选对象的JSON格式,包含希望被包括到请求中的各种自定义选项。"])
