Nodejs技巧之Exceljs表格操作用法示例


Posted in NodeJs onNovember 06, 2019

本文实例讲述了Nodejs技巧之Exceljs表格操作用法。分享给大家供大家参考,具体如下:

工作中我们可能会遇到制作表格的需求,那么针对nodejs如何制作一个汇总表格呢?

今天我们就在此介绍下exceljs 的基本使用,应该可以满足我们大部分的需求。

第一部分 下载

npm install exceljs

第二部分 基本的配置

var Excel = require("exceljs");
var workbook = new Excel.Workbook();
// 基本的创建信息
workbook.creator = "Me";
workbook.lastModifiedBy = "Her";
workbook.created = new Date(1985, 8, 30);
workbook.modified = new Date();
workbook.lastPrinted = new Date(2016, 9, 27);
// 视图大小, 打开Excel时,整个框的位置,大小
workbook.views = [
  {
    x: 0,
    y: 0,
    width: 1000,
    height: 2000,
    firstSheet: 0,
    activeTab: 1,
    visibility: "visible"
  }
];
// 标签创建
var worksheet = workbook.addWorksheet("第一个标签");
 // 带颜色的
var worksheet2 = workbook.addWorksheet("第二个标签", { properties: { tabColor: { argb: "FFC0000" } } });
// 遍历标签
workbook.eachSheet((worksheet, sheetId) => {
  console.log("标签ID:", sheetId)
})
// console.log(worksheet);
// 删除一个标签
workbook.removeWorksheet(2)
var firstSheet = workbook.getWorksheet(1);
console.log("标签信息-id", firstSheet.id);
console.log("获取总的:行/实际行 /列/实际列 个数: ", firstSheet.rowCount, firstSheet.actualColumnCount, firstSheet.columnCount, firstSheet.actualColumnCount);
// 添加那个筛选箭头
worksheet.autoFilter = 'A1:C1';
worksheet.getRow(5).font = { size: 14, bold: true };
worksheet.getCell("A2").value = "Site";
worksheet.getCell("A2").font = {
  name: "Arial Black",
  color: { argb: "FF00FF00" },
  family: 2,
  size: 14,
  italic: true,
  bold: true
};
// save workbook to disk
workbook.xlsx.writeFile("first.xlsx").then(function() {
  console.log("saved");
});

第三部分 行列的操作

看代码看注释

var Excel = require("exceljs");
var workbook = new Excel.Workbook();
// 标签创建
var worksheet = workbook.addWorksheet("第一个标签");
// 带颜色的
var worksheet2 = workbook.addWorksheet("第二个标签", {
  properties: {
    tabColor: {
      argb: "FFC0000"
    }
  }
});
// 设置列
worksheet.columns = [{
    header: 'Rating Period',
    key: 'id',
    width: 38
  },
  {
    header: 'Name',
    key: 'name',
    width: 32,
  },
  {
    header: 'D.O.B.',
    key: 'DOB',
    width: 10,
    style: {
      numFmt: 'dd/mm/yyyy'
    }
  }
];
/// 根据ID添加值
worksheet.addRow({
  id: 1,
  name: 'John Doe',
  dob: new Date(1970, 1, 1)
});
worksheet.addRow({
  id: 2,
  name: 'Jane Doe',
  dob: new Date(1965, 1, 7)
});
worksheet.getCell(1).value = "Z";
// 直接赋值
worksheet.getCell('A6').value = "1989";
// 合并单元格
worksheet.mergeCells('A4:A7');
// 合并四个格子
worksheet.mergeCells('A10', 'B11');
// ===== 格式化显示,
// 数字 1.6 显示 '1 3/5'
worksheet.getCell('A1').value = 1.6;
worksheet.getCell('A1').numFmt = '# ?/?';
// 显示 1.60%
worksheet.getCell('B1').value = 0.016;
worksheet.getCell('B1').numFmt = '0.00%';
// ===== 字体显示
worksheet.getCell('A3').font = {
  // 字体名
  name: 'Comic Sans MS',
  // Font family for fallback. An integer value. 
  family: 4,
  // 字体大小
  size: 16,
  // 下划线
  underline: true,
  // 加粗
  bold: true,
};
worksheet.getCell('A3').value = "测试字体"
// ==== 对齐方式
worksheet.getCell('A1').alignment = {
  vertical: 'top',
  horizontal: 'left'
};
worksheet.getCell('B1').alignment = {
  vertical: 'middle',
  horizontal: 'center'
};
worksheet.getCell('C1').alignment = {
  vertical: 'bottom',
  horizontal: 'right'
};
// ===== 边框
worksheet.getCell('A1').border = {
  top: {
    style: 'double',
    color: {
      argb: 'FF00FF00'
    }
  },
  left: {
    style: 'double'
  },
  bottom: {
    style: 'thin'
  },
  right: {
    style: 'thin'
  }
};
// ==== 填充颜色
worksheet.getCell('A1').fill = {
  // 模式
  type: 'pattern',
  // 填充
  pattern: 'solid',
  // fgColor: {
  //   argb: 'FFFF0000'
  // },
  // 背景色
  bgColor: {
    argb: 'FF0000FF'
  }
};
// 图片相关操作直接看GitHub就好
// 直接创建一个Excel表
workbook.xlsx.writeFile("second.xlsx").then(function () {
  console.log("saved");
});

希望本文所述对大家node.js程序设计有所帮助。

NodeJs 相关文章推荐
Nodejs实战心得之eventproxy模块控制并发
Oct 27 NodeJs
详解nodejs 文本操作模块-fs模块(三)
Dec 22 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 NodeJs
NodeJS收发GET和POST请求的示例代码
Aug 25 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
nodejs实现一个word文档解析器思路详解
Aug 14 NodeJs
详解nodejs http请求相关总结
Mar 31 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 NodeJs
nodejs+koa2 实现模仿springMVC框架
Oct 21 NodeJs
nodejs中内置模块fs,path常见的用法说明
Nov 07 NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
Nov 05 #NodeJs
nodejs实现UDP组播示例方法
Nov 04 #NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 04 #NodeJs
Nodejs实现图片上传、压缩预览、定时删除功能
Oct 25 #NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 #NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 #NodeJs
Nodejs监控事件循环异常示例详解
Sep 22 #NodeJs
You might like
PHP 和 COM
2006/10/09 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
Javascript中的this,bind和that使用实例
2019/12/05 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python3写入文件常用方法实例分析
2015/05/22 Python
Python中pygame安装方法图文详解
2015/11/11 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
生物技术专业毕业生求职信范文
2013/12/14 职场文书
医学生职业规划范文
2014/01/05 职场文书
教师求职自荐信
2014/03/09 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
个人承诺书怎么写
2014/05/24 职场文书
农村党支部书记党群众路线四风问题整改措施
2014/09/26 职场文书
部门2015年度工作总结
2015/04/29 职场文书
食品药品安全责任书
2015/05/11 职场文书
初中生活随笔
2015/08/15 职场文书
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python