数据导出
1.懒人模式
复制这段代码即可
缺点:出错不好维护!
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
<title>Document</title>
</head>
<body>
<div>
<input type="file" id="files"/>
<button onclick="jsonToExcel()">导出为Excel</button>
</div>
<script>
var json;
var inputElement = document.getElementById("files");
inputElement.addEventListener("change", handleFiles, false);
function handleFiles() {
var selectedFile = document.getElementById("files").files[0];
var reader = new FileReader();
reader.readAsText(selectedFile,"UTF-8");
reader.onload = function(){
json = JSON.parse(this.result);
};
}
function jsonToExcel () {
var filename = "write.xlsx";
var ws_name = "SheetJS";
var wb = XLSX.utils.book_new();
var ws = XLSX.utils.json_to_sheet(json);
XLSX.utils.book_append_sheet(wb, ws, ws_name);
XLSX.writeFile(wb, filename);
}
</script>
</body>
</html>
2.node.js 转化插件
2.1需要引入
npm install --save exceljs
代码如下
var Excel = require('exceljs');
var start_time = new Date();
var workbook = new Excel.stream.xlsx.WorkbookWriter({
filename: './导出成功文件.xlsx'
});
var worksheet = workbook.addWorksheet('Sheet');
worksheet.columns = [
{
header: '姓名', key: 'name' },
{
header: '电话', key: 'tel' },
{
header: '中奖信息', key: 'name2' },
{
header: '省市区', key: 'address' },
{
header: '详细地址', key: 'addressContent' },
];
tel:
var data = [
{
name:"大锤",
tel:"110110",
name2:"超级宇宙手办",
address:"中国省中国市中国",
addressContent:"地球村"
}
]
var length = data.length;
// 当前进度
var current_num = 0;
var time_monit = 400;
var temp_time = Date.now();
console.log('开始添加数据');
// 开始添加数据
for(let i in data) {
worksheet.addRow(data[i]).commit();
current_num = i;
if(Date.now() - temp_time > time_monit) {
temp_time = Date.now();
console.log((current_num / length * 100).toFixed(2) + '%');
}
}
console.log('添加数据完毕:', (Date.now() - start_time));
workbook.commit();
var end_time = new Date();
var duration = end_time - start_time;
console.log('用时:' + duration);
console.log("程序执行完毕");
其中 workbook 为 导出文件和路径
data 为导出数据
columns 为前面的header 为导出到exel的头 key值必须与数据对应
在就一些语法其实内容很简单 有兴趣的可以学习下exceljs这个库!
node.js启动
node server.js