最近在学习使用spreadjs,记录一下学习笔记,今天记录下(获取整个表格,渲染后台数据,下载excel文件)
虽然项目是vue,但是是以js形式导入进去,初始化代码为:
designer.value = new GC.Spread.Sheets.Designer.Designer(document.getElementById("airTest")); spread.value = designer.value.getWorkbook(););
上面代码spread.value则个在线的编辑表单,为整个表单导入后台的数据代码则为:
const {datas} = await requestGet('/excelEnter/genSsjson/1671934153762716544') spread.value.fromJSON(JSON.parse(datas));
下载excel表单文件代码为:
let spread = workbook.value;
let excelIo = new GC.Spread.Excel.IO();
let fileName = "air4444.xlsx";
let json = spread.toJSON();
excelIo.save(
json,
function (blob) {
console.warn(blob);
var downloadElement = document.createElement("a"); //创建一个a 虚拟标签
var href = window.URL.createObjectURL(blob); // 创建下载的链接
downloadElement.href = href;
downloadElement.download = fileName;
document.body.appendChild(downloadElement);
downloadElement.click(); // 点击下载
document.body.removeChild(downloadElement); // 下载完成移除元素
window.URL.revokeObjectURL(href);
// saveAs(blob, fileName);
},
function (e) {
// process error
console.log(e);
},
{}
);