在Vue 2项目中使用exceljs
实现多表头导出,你需要先安装exceljs
库:
npm install exceljs
然后,你可以使用以下代码示例来创建一个包含多表头的Excel文件并导出:
import ExcelJS from 'exceljs';
export function exportMultiHeaderExcel(data, fileName) {
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Sheet1');
// 定义多表头
const header = [
['表头1', '表头2', '表头3'],
['子表头1', '子表头2', '子表头3']
];
header.forEach((headerRow, index) => {
const row = worksheet.addRow(headerRow);
if (index === 0) {
// 第一行设置为多重行
row.eachCell((cell, index) => {
cell.fill = {
type: 'pattern',
pattern: 'solid',
fgColor: { argb: 'FFFFFFFF' },
bgColor: { argb: 'FF000000' }
};
cell.font = { bold: true };
cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } };
});
} else {
// 第二行设置为正常样式
row.eachCell((cell, index) => {
cell.font = { bold: true };
cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } };
});
}
});
// 添加数据行
data.forEach(rowData => {
worksheet.addRow(rowData);
});
// 确定文件名
fileName = fileName || 'export.xlsx';
// 导出Excel文件
workbook.xlsx.writeBuffer().then(buffer => {
const data = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' });
// 使用a标签下载文件
const url = URL.createObjectURL(data);
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', fileName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
});
}
// 使用示例
const data = [
['单元格1', '单元格2', '单元格3'],
['单元格4', '单元格5', '单元格6']
];
exportMultiHeaderExcel(data, '多表头导出.xlsx');
这段代码定义了一个exportMultiHeaderExcel
函数,它接受数据和文件名作为参数,然后创建一个包含多表头的Excel文件并提示用户下载。你可以根据自己的需求调整header
数组来定义你的多表头结构,以及data
数组来添加你的数据。