IT序号网

Nodejs技巧之---Exceljs知识解答

developer 2021年05月25日 编程语言 144 0

工作中我们可能会遇到制作表格的需求,那么针对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


发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

node读写Excel操作知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。