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的实现原理和搭建服务器(动态)
Aug 10 NodeJs
nodejs进阶(6)—连接MySQL数据库示例
Jan 07 NodeJs
NodeJs测试框架Mocha的安装与使用
Mar 28 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
nodejs后台集成ueditor富文本编辑器的实例
Jul 11 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
关于Mac下安装nodejs、npm和cnpm的教程
Apr 11 NodeJs
NodeJS安装图文教程
Apr 19 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
nodejs微信开发之自动回复的实现
Mar 17 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 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模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
JAVASCRIPT 对象的创建与使用
2021/03/09 Javascript
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
JavaScript操作DOM元素的childNodes和children区别
2015/04/01 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
ios中视频的最后一桢问题解决
2019/05/14 Javascript
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
Cython 三分钟入门教程
2009/09/17 Python
python求素数示例分享
2014/02/16 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
Europcar比利时:租车
2019/08/26 全球购物
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
小溪流的歌教学反思
2014/02/13 职场文书
决心书标准格式
2014/03/11 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
师德标兵事迹材料
2014/12/19 职场文书
入党个人总结范文
2015/03/02 职场文书
税务会计岗位职责
2015/04/02 职场文书
会计主管岗位职责
2015/04/02 职场文书
考研经验交流会策划书
2015/11/02 职场文书