JS导出、导⼊EXCEL(案例) 插件下载地址:
js assign1、导出excel
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js导出excel</title>
</head>
<body>
<button onclick="downloadExl(jsono)">导出</button>
<a href="" download="我是导出来的测试⽂件.xlsx" id="downloadA"></a>
<script src="xlsx.full.min.js"></script>
<script>
var jsono = [{
"姓名": "张三",
"年龄": "30",
"性别": "男"
},{
"姓名": "李四",
"年龄": "40",
"性别": "⼥"
},{
"姓名": "王五",
"年龄": "50",
"性别": "男"
}];
var tmpDown; //导出的⼆进制对象
function downloadExl(json, type) {
//根据json数据,获取excel的第⼀⾏(例如:姓名、年龄、性别)存⾄map
var tmpdata = json[0];
json.unshift({});
var keyMap = []; //获取keys
for (var k in tmpdata) {
keyMap.push(k);
json[0][k] = k;
}
var tmpdata = [];
json.map((v, i) => keyMap.map((k, j) => Object.assign({}, {
v: v[k],
position: (j > 25 ? getCharCol(j) : String.fromCharCode(65 + j)) + (i + 1)
}))).reduce((prev, next) => at(next)).forEach((v, i) => tmpdata[v.position] = {
v: v.v
});
//设置区域,⽐如表格从A1到D10
var outputPos = Object.keys(tmpdata);
var tmpWB = {
SheetNames: ['mySheet'], //保存的表标题
Sheets: {
'mySheet': Object.assign({},
tmpdata, //内容
{
'!ref': outputPos[0] + ':' + outputPos[outputPos.length - 1] //设置填充区域
})
}
};
/
/创建⼆进制对象写⼊转换好的字节流
tmpDown = new Blob([s2ab(XLSX.write(tmpWB,
{bookType: (type == undefined ? 'xlsx':type),bookSST: false, type: 'binary'}//这⾥的数据是⽤来定义导出的格式类型 ))], {
type: ""
});
var href = ateObjectURL(tmpDown); //创建对象超链接
setTimeout(function() { //延时释放
}, 100);
}
//字符串转字符流
3、导⼊excel
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论