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全栈框架StrongLoop推荐
Nov 09 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 NodeJs
nodejs基础应用
Feb 03 NodeJs
Nodejs+Socket.io实现通讯实例代码
Feb 13 NodeJs
详解nodeJS中读写文件方法的区别
Mar 06 NodeJs
NodeJS处理Express中异步错误
Mar 26 NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 NodeJs
使用vs code开发Nodejs程序的使用方法
Sep 21 NodeJs
Nodejs模块载入运行原理
Feb 23 NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 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
js 多种变量定义(对象直接量,数组直接量和函数直接量)
2010/05/24 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
angular2路由切换改变页面title的示例代码
2017/08/23 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
python如何查看微信消息撤回
2018/11/27 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
python3获取当前目录的实现方法
2019/07/29 Python
Python数据库小程序源代码
2019/09/15 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
学生实习自我鉴定
2013/10/11 职场文书
医院办公室主任职责
2013/12/29 职场文书
优秀的自荐信要注意哪些
2014/01/03 职场文书
城建学院毕业生自荐信
2014/01/31 职场文书
夜不归宿检讨书
2014/02/25 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
关于做家务的心得体会
2016/01/23 职场文书