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的模块写法入门(实例代码)
Mar 07 NodeJs
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
nodejs爬虫抓取数据乱码问题总结
Jul 03 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
nodejs对express中next函数的一些理解
Sep 08 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
nodejs实现的简单web服务器功能示例
Mar 15 NodeJs
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
May 15 NodeJs
nodejs 十六进制字符串型数据与btye型数据相互转换
Jul 30 NodeJs
nodejs二进制与Buffer的介绍与使用
Jul 11 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
Nodejs环境实现socket通信过程解析
Jul 03 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导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
PHP 错误处理机制
2015/07/06 PHP
php格式文件打开的四种方法
2018/02/24 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
json原理分析及实例介绍
2012/11/29 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
如何屏蔽防止别的网站嵌入框架代码
2015/08/24 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
vue中promise的使用及异步请求数据的方法
2018/11/08 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
layui富文本编辑器前端无法取值的解决方法
2019/09/18 Javascript
netbeans7安装python插件的方法图解
2013/12/24 Python
c++生成dll使用python调用dll的方法
2014/01/20 Python
python的keyword模块用法实例分析
2015/06/30 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
Python Socket使用实例
2017/12/18 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
Django中多种重定向方法使用详解
2019/07/17 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
python中with用法讲解
2020/02/07 Python
Python列表切片常用操作实例解析
2020/03/10 Python
Python celery原理及运行流程解析
2020/06/13 Python
python接入支付宝的实例操作
2020/07/20 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
《神奇的克隆》教学反思
2014/04/10 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
被告代理词范文
2015/05/25 职场文书