Nodejs技巧之

工作中我们可能会遇到制作表格的需求,那么针对nodejs如何制作一个汇总表格呢?
今天我们就在此介绍下exceljs的基本使用,应该可以满足我们大部分的需求。

第一部分 下载

npm install exceljs

第二部分 基本的配置

1var Excel = require("exceljs"); 2 3var workbook = new Excel.Workbook(); 4 5// 基本的创建信息 6workbook.creator = "Me"; 7workbook.lastModifiedBy = "Her"; 8workbook.created = new Date(1985, 8, 30); 9workbook.modified = new Date(); 10workbook.lastPrinted = new Date(2016, 9, 27); 11 12// 视图大小, 打开Excel时,整个框的位置,大小 13workbook.views = [ 14 { 15 x: 0, 16 y: 0, 17 width: 1000, 18 height: 2000, 19 firstSheet: 0, 20 activeTab: 1, 21 visibility: "visible" 22 } 23]; 24 25// 标签创建 26var worksheet = workbook.addWorksheet("第一个标签"); 27 // 带颜色的 28var worksheet2 = workbook.addWorksheet("第二个标签", { properties: { tabColor: { argb: "FFC0000" } } }); 29 30// 遍历标签 31workbook.eachSheet((worksheet, sheetId) => { 32 console.log("标签ID:", sheetId) 33}) 34// console.log(worksheet); 35// 删除一个标签 36workbook.removeWorksheet(2) 37 38var firstSheet = workbook.getWorksheet(1); 39console.log("标签信息-id", firstSheet.id); 40console.log("获取总的:行/实际行 /列/实际列 个数: ", firstSheet.rowCount, firstSheet.actualColumnCount, firstSheet.columnCount, firstSheet.actualColumnCount); 41 42// 添加那个筛选箭头 43worksheet.autoFilter = 'A1:C1'; 44 45worksheet.getRow(5).font = { size: 14, bold: true }; 46 47worksheet.getCell("A2").value = "Site"; 48worksheet.getCell("A2").font = { 49 name: "Arial Black", 50 color: { argb: "FF00FF00" }, 51 family: 2, 52 size: 14, 53 italic: true, 54 bold: true 55}; 56 57// save workbook to disk 58workbook.xlsx.writeFile("first.xlsx").then(function() { 59 console.log("saved"); 60});

第三部分 行列的操作

看代码看注释

1var Excel = require("exceljs"); 2 3var workbook = new Excel.Workbook(); 4 5// 标签创建 6var worksheet = workbook.addWorksheet("第一个标签"); 7// 带颜色的 8var worksheet2 = workbook.addWorksheet("第二个标签", { 9 properties: { 10 tabColor: { 11 argb: "FFC0000" 12 } 13 } 14}); 15// 设置列 16worksheet.columns = [{ 17 header: 'Rating Period', 18 key: 'id', 19 width: 38 20 }, 21 { 22 header: 'Name', 23 key: 'name', 24 width: 32, 25 }, 26 { 27 header: 'D.O.B.', 28 key: 'DOB', 29 width: 10, 30 style: { 31 numFmt: 'dd/mm/yyyy' 32 } 33 } 34]; 35 36/// 根据ID添加值 37worksheet.addRow({ 38 id: 1, 39 name: 'John Doe', 40 dob: new Date(1970, 1, 1) 41}); 42worksheet.addRow({ 43 id: 2, 44 name: 'Jane Doe', 45 dob: new Date(1965, 1, 7) 46}); 47 48worksheet.getCell(1).value = "Z"; 49 50 51// 直接赋值 52worksheet.getCell('A6').value = "1989"; 53 54// 合并单元格 55worksheet.mergeCells('A4:A7'); 56// 合并四个格子 57worksheet.mergeCells('A10', 'B11'); 58 59// ===== 格式化显示, 60// 数字 1.6 显示 '1 3/5' 61worksheet.getCell('A1').value = 1.6; 62worksheet.getCell('A1').numFmt = '# ?/?'; 63// 显示 1.60% 64worksheet.getCell('B1').value = 0.016; 65worksheet.getCell('B1').numFmt = '0.00%'; 66// ===== 字体显示 67worksheet.getCell('A3').font = { 68 // 字体名 69 name: 'Comic Sans MS', 70 // Font family for fallback. An integer value. 71 family: 4, 72 // 字体大小 73 size: 16, 74 // 下划线 75 underline: true, 76 // 加粗 77 bold: true, 78}; 79worksheet.getCell('A3').value = "测试字体" 80 81// ==== 对齐方式 82worksheet.getCell('A1').alignment = { 83 vertical: 'top', 84 horizontal: 'left' 85}; 86worksheet.getCell('B1').alignment = { 87 vertical: 'middle', 88 horizontal: 'center' 89}; 90worksheet.getCell('C1').alignment = { 91 vertical: 'bottom', 92 horizontal: 'right' 93}; 94 95// ===== 边框 96worksheet.getCell('A1').border = { 97 top: { 98 style: 'double', 99 color: { 100 argb: 'FF00FF00' 101 } 102 }, 103 left: { 104 style: 'double' 105 }, 106 bottom: { 107 style: 'thin' 108 }, 109 right: { 110 style: 'thin' 111 } 112}; 113 114// ==== 填充颜色 115worksheet.getCell('A1').fill = { 116 // 模式 117 type: 'pattern', 118 // 填充 119 pattern: 'solid', 120 // fgColor: { 121 // argb: 'FFFF0000' 122 // }, 123 // 背景色 124 bgColor: { 125 argb: 'FF0000FF' 126 } 127}; 128// 图片相关操作直接看GitHub就好 129 130// 直接创建一个Excel表 131workbook.xlsx.writeFile("second.xlsx").then(function () { 132 console.log("saved"); 133});

作者:simuty
链接:https://www.jianshu.com/p/ebfcef81e5e7

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

sublime中调试js代码

首先安装nodejs(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fnodejs.org%2F)当然你可以使用其它诸如jsc(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Ftrac.webkit.org

前端性能优化 - 雅虎军规

无论是在工作中,还是在面试中,web前端性能的优化都是很重要的,那么我们进行优化需要从哪些方面入手呢?可以遵循雅虎的前端优化35条军规,这样对于优化有一个比较清晰的方向.35条军规1.尽量减少HTTP请求个数——须权衡2.使用CDN(内容分发网络)3.为文件头指定Expires或CacheControl,使内容具有缓存性。4.避免空的

NodeJs在Centos 6.5上部署

环境Centos6.51.安装NodeJs和npmsudo yum install nodejs npm enablerepoepel参考:查看(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2Fjoyent%2

SpreadJS 纯前端表格控件应用案例:Teammark知识管理库

由三节课研发的Teammark系统,基于SpreadJS二次开发实现,采用行业优秀的工作方法,以Excel模板作为基本的文档范例,满足了客户在线编辑Excel文档的刚性需求。下面,让我们一起来看看三节课是如何在“Teammark系统”中应用表格技术,实现多人实时协作与“表格文档协同编辑(https://www.oschina.net/action

Docker 安装 Request Tracker 工单系统

1、需求docker安装工单系统RequestTracker(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fbestpractical.com%2Frequesttracker),并需要支持LDAP登入。2、制作镜像1)request