项目需求:上传文件时如果有错误信息,则上传不成功,需要提示用户下载查看错误信息。下载查看错误信息是前端根据后台返回的对象数组放到excel表格中的。
后台返回的数组:
效果如下:
在开始之前先要了解一下几个excel格式的区别:
1.后缀是xls的在2007版本之后的office打开会有提示(xls在wps上打开没有提示)
2.后缀是xlsx在2007版本之后的打开没有提示,但是在2007之前的版本会打不开
3.csv是最通用的一种文件格式,它可以非常容易的被导入各种pc表格及数据库中,此文件中一行即为数据表的一行。生成数据表字段用半角逗号隔开。但是csv不能设置样式。
第一种:生成xls
代码如下:
// 错误信息下载
exportEx = val => { // val:需要导出的json数据
let JSONData = val;
let ShowLabel = ['序号', 'imei', '错误原因']; // 导出的excel的表头数据
//先转化json
let arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
// 给数组内容换好位置
let finalData = []; // 最终要导出的json数据,其中json数据顺序要和表头数据顺序一致
arrData.forEach(item => {
let obj = {
rowNum: item.rowNum,
imei: item.imei ? item.imei : '',
errorMsg: item.errorMsg,
};
finalData.push(obj);
});
let excel = '<table>';
//设置表头
let row = '<tr>';
for (let i = 0; i < ShowLabel.length; i++) {
row += '<td>' + ShowLabel[i] + '</td>';
}
//换行
excel += row + '</tr>';
//设置数据
for (let i = 0; i < finalData.length; i++) {
let row