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");
- });
作者:simuty
链接:https://www.jianshu.com/p/ebfcef81e5e7
Nodejs技巧之---Exceljs的更多相关文章
- NodeJS技巧
1. 获取程序执行时间 // 打印程序执行时间 console.time() // some functions console.timeEnd() 2. 将函数异步化 setTimeout(() = ...
- 学习老外用webstorm开发nodejs的技巧--代码提示DefinitelyTyped
最近入了nodejs的坑,作为老码农,js对我来说还是很容易的.webstorm虽说用得不多,但是pycharms我是老手了,idea的东西一脉相承,想想也就那样了. 但是自从看了某个视频后,觉得毕竟 ...
- webstorm开发nodejs的技巧--代码提示DefinitelyTyped
先发视频“WebStorm - MEAN Stack Walkthrough and Tips”,地址:http://www.tudou.com/programs/view/txhBUA7fcNA/? ...
- 【原创】分布式之数据库和缓存双写一致性方案解析(三) 前端面试送命题(二)-callback,promise,generator,async-await JS的进阶技巧 前端面试送命题(一)-JS三座大山 Nodejs的运行原理-科普篇 优化设计提高sql类数据库的性能 简单理解token机制
[原创]分布式之数据库和缓存双写一致性方案解析(三) 正文 博主本来觉得,<分布式之数据库和缓存双写一致性方案解析>,一文已经十分清晰.然而这一两天,有人在微信上私聊我,觉得应该要采用 ...
- nodejs进阶(1)——npm使用技巧和最佳实践
nodejs进阶教程,小白绕道!!! npm使用技巧和最佳实践 前提:请确保安装了node.js npm的最佳实践 npm install是最常见的npm cli命令,但是它还有更多能力!接下来你会了 ...
- Excel文件导入导出(基于Nodejs、exceljs)
Excel导入.导出是大多数项目的管理后台必备功能.几年来使用过多个该功能的实现包,最近一次开发该功能,突然发现一个人气极高(3000+)的包,这里记录一下使用方法. 大凡厉害的技术的文档咋一看都想字 ...
- nodejs 环境配置技巧
环境:Mac OSX 10.10.3 NodeJS:v0.12.2 NodeJs 安装指需要 1.执行 npm install xxxx -g 时 需要执行 sudo npm install xxxx ...
- 小记NodeJS两项小技巧(与HTTP相关)
1,兼容HTTP1.1和HTTP1.0 区别在content-length,1.0接受定长,不接受变长,导致transfer-encodeing的chunked模式无法识别,最终导致无法识别BODY. ...
- WebStorm 常用功能的使用技巧分享
WebStorm 是 JetBrain 公司开发的一款 JavaScript IDE,使用非常方便,可以使编写代码过程更加流畅. 本文在这里分享一些常用功能的使用技巧,希望能帮助大家更好的使用这款强大 ...
随机推荐
- vue + element ui开发过程中需要注意的几个点
1.实现动态的数据双向绑定 关键字[$set]在这个需求开发的过程中还遇到深度克隆的问题 2:form表单的动态字段验证 关键字[promise.all] 3:动态表单验证关键字[el-form-it ...
- 使用终端批量下载 B 站视频
需要使用一个叫做 you-get 的命令行程序 可以通过 Homebrew 安装(macOS), 安装命令为 brew install you-get, 其他平台的安装可参考 Github 主页: s ...
- Flask之threading.loacl方法
一.threading.loacl方法 import threading import time class Foo: pass foo = Foo() def func(num): foo.num ...
- cpio命令
RPM包中文件提取 cpio命令主要有三种基本模式:"-o"模式指的是copy-out模式,就是把数据备份到文件库中:"-i"模式指的是copy-in模式,就是 ...
- 华为云PaaS首席科学家:Cloud Native +AI,企业数字化转型的最佳拍档
近日,在2019华为全球分析师大会期间,华为云PaaS首席科学家熊英博士在+智能,见未来(华为云&大数据)的分论坛上,从云计算行业发展谈起,深入云原生发展趋势,对华为云智能应用平台做了深度解读 ...
- HTTP和HTTPS的区别和常见的面试题
本篇会着重介绍http和https的区别和常见的面试题 常见的http和https面试题: Http与Https的基本概念和他们的区别 HTTPS工作原理 常用的HTTP方法有哪些 GET方法与POS ...
- Oracle的instr()函数和substr()函数
INSTR()函数 可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符. 在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置. 语法: instr(sourceString ...
- WSGI原理
web_server: import socket import time import multiprocessing import re import mini_frame class WSGIS ...
- Django REST framework解析器和渲染器
解析器 解析器的作用 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 在了解解析器之前,我们要先知道Accept以及ContentTy ...
- CSS3中的display:grid网格布局介绍
1.网格布局(grid): 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局; 2.基本概念: 容器和项目,如图所示: <div class="content&qu ...