2021-4-27

本文详细介绍了如何使用ExcelJS库在JavaScript中操作Excel表格,包括安装、工作簿创建、单元格操作、合并单元格、格式设置以及文件下载。涵盖了初始化工作表、设置列宽、单元格样式和内容居中等关键步骤。
摘要由CSDN通过智能技术生成

exceljs 使用记录

  1. 安装

    官方文档传送门

    npm install exceljs --save
    
  2. 引用

    import * as ExcelJs from 'exceljs/dist/exceljs';
    
  3. 初始化工作表

    const workbook = new ExcelJs.Workbook(); //创建工作簿
    workbook.created = new Date();  //设置工作簿创建时间
    workbook.modified = new Date(); //设置工作簿修改时间
    workbook.lastPrinted = new Date(); 
    workbook.properties.date1904 = true; // 设置日期系统
    const worksheet = workbook.addWorksheet('sheet', { properties: { tabColor: { argb: 'FF00FF00' } } }); //添加工作表并初始化设置
    
  4. 获取指定列并设置列宽

    worksheet.getColumn(“A”).width = 15 // 表示宽度为15个英文字符的宽度
    
  5. 获取指定行的指定单元格

    const cell = worksheet.getRow(2).getCell(1)  // 获取第二行的第一个单元格
    cell.border = { // 给单元格添加边框
        top: { style: 'thin' },
        left: { style: 'thin' },
        bottom: { style: 'thin' },
        right: { style: 'thin' }
    };
    cell.value = { // 给单元格赋值并设定样式
        'richText': [{
          'font': {
            'bold': true,
            'size': 16,
            'color': { 'theme': 1 },
            'name': '黑体',
            'family': 2,
            'scheme': 'minor'
          },
          'text': "单元格中的值"
        }]
      };
    cell.alignment = { vertical: 'middle', horizontal: 'center' }; // 内容居中
    
  6. 合并单元格

    worksheet.mergeCells('K10', 'M12');// 按左上,右下合并
    worksheet.mergeCells(10,11,12,13);// 按开始行,开始列,结束行,结束列合并(相当于 K10:M12)
    
  7. 下载表格

    workbook.xlsx.writeBuffer().then(buffer => { // 保存设置;
      saveAs(new Blob([buffer], {
        type: 'application/octet-stream'
      }), "文件名.xlsx");
    });
    
    function saveAs(obj, fileName) {
        let excelTable = document.createElement('a');
        excelTable.download = fileName || '下载';
        excelTable.href = URL.createObjectURL(obj);
        excelTable.click();
        setTimeout(function () {
          URL.revokeObjectURL(obj);
        }, 100);
      }
    
  8. 其它

    function getExcelColName(n) {   // 数字转excel列名称 如:1=》A, 27=>AA, 28=>AB
        var ordA = 'A'.charCodeAt(0);
        var ordZ = 'Z'.charCodeAt(0);
        var len = ordZ - ordA + 1;
        var s = "";
        while (n >= 0) {
          s = String.fromCharCode(n % len + ordA) + s;
          n = Math.floor(n / len) - 1;
        }
        return s;
      }
     
    function isChinese(temp) { //中文字符判断
        var re = /[^\u4E00-\u9FA5]/;
        if (re.test(temp)) return false;
        return true;
      }
      
    function rowToCol(data) { // 表格数据横竖转换
        let colData = [];
        if (data && data.length > 0) {
          for (const key in data[0]) {
            colData.push([]);
          }
          for (const key in data) {
            for (const index in data[key]) {
              colData[index][key] = data[key][index];
            }
          }
        }
        return colData;
      }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值