自定义函数 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格式,包含希望被包括到请求中的各种自定义选项。"])

云南省
浏览 839
收藏
5
分享
5 +1
1
+1
全部评论 1
 
亂雲飛渡
· 广东省
1
回复