首页 > 解决方案 > 在散景回调中使用自定义 js 创建 .xlsx

问题描述

是否有可能在散景应用程序中创建带有 customjs 回调的 .xlsx 文件以供下载选项?

尝试了以下方法,但这不起作用:

callback = CustomJS(code="""
var wb = XLSX.utils.book_new();
wb.SheetNames.push("Test Sheet");
var ws_data = [['hello' , 'world']];
var ws = XLSX.utils.aoa_to_sheet(ws_data);
wb.Sheets["Test Sheet"] = ws;
var wbout = XLSX.write(wb, {bookType:'xlsx',  type: 'binary'});

function s2ab(s) { 
                var buf = new ArrayBuffer(s.length); //convert s to arrayBuffer
                var view = new Uint8Array(buf);  //create uint8array as viewer
                for (var i=0; i<s.length; i++) view[i] = s.charCodeAt(i) & 0xFF; //convert to octet
                return buf;    
}

var filename = 'data.xlsx';
var blob = new Blob([s2ab(wbout)], { type:"application/octet-stream" });


if (navigator.msSaveBlob) {
    navigator.msSaveBlob(blob, filename);
}
else {
    var link = document.createElement("a");
    link = document.createElement('a')
    link.href = URL.createObjectURL(blob);
    link.download = filename
    link.target = "_blank";
    link.style.visibility = 'hidden';
    link.dispatchEvent(new MouseEvent('click'))
}

""")    

标签: callbackbokehxlsx

解决方案


推荐阅读