前端导出Excel?使用js/ts导出Excel?背景色、指定单元格合并等高定制化?选它——Exceljs
warning:
这篇文章距离上次修改已过189天,其中的内容可能已经有所变动。
在前端使用JavaScript或TypeScript导出Excel文件,并实现背景色和指定单元格合并等高级定制化,可以使用xlsx
库和FileSaver
库。以下是一个简单的例子:
首先,安装所需的库:
npm install xlsx file-saver
然后,使用以下代码导出Excel:
import * as XLSX from 'xlsx';
import { saveAs } from 'file-saver';
function exportToExcel(data, fileName) {
// 创建工作簿
const workbook = XLSX.utils.book_new();
// 将数据转换为工作表
const worksheet = XLSX.utils.json_to_sheet(data);
// 设置单元格样式(背景色、合并单元格等)
// 示例:将A1单元格设置为黄色背景,并合并A1:B1单元格
const cellA1 = worksheet['A1']; // 获取单元格
cellA1.s = {
fill: {
fgColor: { rgb: "FFFF0000" } // 黄色背景,RGB格式
},
alignment: {
horizontal: "center",
vertical: "center"
}
};
worksheet['A1:B1'].merge = []; // 合并单元格
// 将工作表添加到工作簿
XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");
// 生成Excel的二进制字符串
const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
// 使用FileSaver保存文件
saveAs(new Blob([excelBuffer], { type: 'application/octet-stream' }), fileName + '.xlsx');
}
// 使用示例
const data = [
{ name: "Alice", age: 25 },
{ name: "Bob", age: 30 }
];
exportToExcel(data, "MyExcel");
这段代码定义了一个exportToExcel
函数,它接受数据和文件名作为参数,然后使用xlsx
库创建一个Excel文件,并自定义单元格的样式,比如背景色和合并单元格。最后,使用FileSaver
保存生成的Excel文件。
评论已关闭