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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM