ie导出excel是html文件路径,前端导出excel文件兼容IE,Chrome

导出文件,使用最多的方式还是服务器端来处理,但是有时候需要web端来导出一个表格

思路1.导出文件的格式data:text/csv;charset=utf-8,IE上加上BOM头\ufeff 防止乱码

2.表格数据以","分列, \n分行

3.使用encodeURI转换成可以识别的url,IE上加上decodeURIComponent转换这个url

话不多说直接上代码//导出csv文件

export const exportExcel = data => {

var csvContent = "data:text/csv;charset=utf-8,";

if (window.navigator.msSaveOrOpenBlob) {

// 加上 \ufeff BOM 头,防止乱码

csvContent = "\ufeff";

}

//csv 文件可以用Excel打开, 如果是导出一个table 的话,使用Excel 就方便很多了

data.forEach(function(infoArray, index) {

var dataString = infoArray.join(",");

//分列使用 , 号分割, 分行用 \n

csvContent += index < data.length ? dataString + "\n" : dataString;

});

exportFun(csvContent);

};

const exportFun = csvContent => {

if (window.navigator.msSaveOrOpenBlob) {

// IE 浏览器 \n.使用后会发现列可以分开,但是不换行。 看上去不认识 使用decodeURIComponent 进行编码

var blob = new window.Blob([decodeURIComponent(encodeURI(csvContent))], {

type: "text/csv;charset=utf-8;"

});

//Internet Explorer 10 的 msSaveBlob 和 msSaveOrOpenBlob 方法允许用户在客户端上保存文件,名字随便起

navigator.msSaveBlob(blob, "download.csv");

} else {

//非IE浏览器直接使用a标签download下载

var encodedUri = encodeURI(csvContent);

var link = document.createElement("a");

link.setAttribute("href", encodedUri);

link.setAttribute("download", "download.csv");

document.body.appendChild(link);

link.click();

}

};

//造数据

exportExcel() {

//表头

let theadData = [["抓拍图片", "时间", "设备名称"]],

//表格内容,列数必须和表偷数据一致

for (var v of this.snpaShotData_notype) {

const img =v.SubImageList[0].StoragePath

const time = v.FaceAppearTime || "";

const name = v.ApeName || "";

var arr = [img, time, name];

theadData.push(arr);

}

//最终的数据应该是二维数组,数组中每个元素代表每一行

exportExcel(theadData);

},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值