要将带有格式的单元格导出到Excel中,可以使用ExcelJS库。以下是一个使用Angular和ExcelJS的示例代码:
npm install exceljs
import * as ExcelJS from 'exceljs/dist/exceljs.min.js';
exportToExcel() {
// 创建一个新的工作簿
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Sheet 1');
// 添加标题行
const titleRow = worksheet.addRow(['姓名', '年龄', '成绩']);
titleRow.font = { bold: true };
// 添加数据行
const data = [
{ name: '张三', age: 20, score: 90 },
{ name: '李四', age: 22, score: 85 },
{ name: '王五', age: 21, score: 95 }
];
data.forEach((item) => {
const row = worksheet.addRow([item.name, item.age, item.score]);
row.alignment = { vertical: 'middle', horizontal: 'center' };
});
// 自动调整列宽
worksheet.columns.forEach((column) => {
column.width = Math.max(column.header.length, ...column.values.map((value) => value ? value.toString().length : 10));
});
// 导出Excel文件
workbook.xlsx.writeBuffer().then((buffer: ArrayBuffer) => {
const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'data.xlsx';
a.click();
window.URL.revokeObjectURL(url);
});
}
在上述代码中,首先创建了一个新的工作簿和一个工作表。然后添加了标题行和数据行,并对标题行和数据行进行了格式化设置。最后,自动调整了列宽度并将工作簿导出为Excel文件。
通过以上步骤,就可以在Angular中实现带有格式的单元格导出到Excel的功能。