前端导出excel,yarn add exceljs
Posted Jay_帅小伙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端导出excel,yarn add exceljs相关的知识,希望对你有一定的参考价值。
import Excel from 'exceljs';
async export(fileName, title, columns, data, fileType = 'xlsx')
const workbook = new Excel.Workbook();
const sheet = workbook.addWorksheet(title);
const keyValueData = ;
sheet.columns = columns.map(item =>
keyValueData[item.key] = item;
return
header: item.title,
key: item.key,
width: item.width || 100
;
);
const rows = [];
data.forEach(item =>
const obj = ;
for (const key in item)
if (keyValueData[key])
const value = keyValueData[key].value ? keyValueData[key].value(item, item[key]) : item[key];
obj[key] = value;
rows.push(obj);
);
sheet.addRows(rows);
const res = await workbook[fileType].writeBuffer();
// util.blobToFile(fileName, res, fileType === 'csv'); // 如果导出乱码, 请改这里, 导出的head设置问题
this.blobToFile(fileName, res, fileType === 'csv'); // 如果导出乱码, 请改这里, 导出的head设置问题
,
/**
* blob下载文件
* @param fileName
* @param blob
*/
blobToFile(fileName, b, isUtf8)
if (isUtf8 === true)
b = '\\uFEFF' + b;
const blob = new Blob([b]);
if ('download' in document.createElement('a')) // 非IE下载
const elink = document.createElement('a');
elink.download = fileName;
elink.style.display = 'none';
if (isUtf8 === true)
elink.href = URL.createObjectURL(blob, type: 'text/csv;charset=utf-8' );
else
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink);
else // IE10+下载
navigator.msSaveBlob(blob, fileName);
,
以上是关于前端导出excel,yarn add exceljs的主要内容,如果未能解决你的问题,请参考以下文章