Nodejs导出excel文件 及复杂样式解决方案

发布于:2025-05-24 ⋅ 阅读:(17) ⋅ 点赞:(0)

技术选型

采用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 比较常用

结果

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到