工作中我们可能会遇到制作表格的需求,那么针对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 diskworkbook.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");});
会者不难,相信这一篇就够了,至于更加高逼格的,那就不仅是api了,可能得补补office二级