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 相关文章推荐
golang、python、php、c++、c、java、Nodejs性能对比
Mar 12 NodeJs
NodeJS框架Express的模板视图机制分析
Jul 19 NodeJs
nodejs中exports与module.exports的区别详细介绍
Jan 14 NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 NodeJs
实例分析nodejs模块xml2js解析xml过程中遇到的坑
Mar 18 NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 NodeJs
nodejs之get/post请求的几种方式小结
Jul 26 NodeJs
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
Sep 06 NodeJs
浅谈NodeJs之数据库异常处理
Oct 25 NodeJs
Nodejs libuv运行原理详解
Aug 21 NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 NodeJs
NodeJS配置CORS实现过程详解
Dec 02 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获取网络文件的实现代码
2010/01/01 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
php实现获取近几日、月时间示例
2019/07/06 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
2016/07/24 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
vue实现验证码输入框组件
2017/12/14 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
vue-cli3 从搭建到优化的详细步骤
2019/01/20 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
Python中的tuple元组详细介绍
2015/02/02 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
新加坡鲜花速递/新加坡网上花店:Ferns N Petals
2020/08/29 全球购物
市场营销方案范文
2014/03/11 职场文书
安全责任书范本
2014/04/15 职场文书
大学三年计划书范文
2014/04/30 职场文书
爱护公共设施的标语
2014/06/24 职场文书