Nodejs导出excel文件 及复杂样式解决方案
技术选型
采用excelJs这个库
功能解释
1. 生成表格
import excelJs from 'excelJs' const workbook = new exceljs.Workbook();// 添加工作表const worksheet = workbook.addWorksheet('开票资料', {properties: {defaultRowHeight: 35 // 单位:磅(points)}});
这里设置的是行高,注意磅数和excel里面的不同,这里35磅大约等于excel的20不到。
2. 设置列宽
worksheet.columns = [{ header: '', key: 'A', width: 18},{ header: '', key: 'B', width: 50 }, // 直接设置第三列宽度{ header: '', key: 'C', width: 22 },{ header: '', key: 'D', width: 20 },{ header: '', key: 'E', width: 16 },{ header: '', key: 'F', width: 20 },{ header: '', key: 'G', width: 20 },];
3. 合并单元格
worksheet.mergeCells('A1:G1')
4. 设置字体
worksheet.getCell('A2').font = {name: '华文楷体', size: 12, bold: true}worksheet.getCell('A2').value = "开票申请单"worksheet.getCell('A2').alignment = {horizontal:'center', vertical: 'middle'}
5. 表格框格线
worksheet.getCell('D4').value = '发票类别'worksheet.getCell('D4').font = {name: '华文楷体', size: 12}worksheet.getCell('D4').border = {top: {style: 'medium'}, bottom: {style: "thin"}, right: {style: 'thin'}, left: {style: 'medium'}}worksheet.getCell('D4').alignment = {vertical: 'middle', wrapText: true, horizontal:'center',}
通过设置上下左右的四条线,thin/medium/dotted 比较常用