【轉載】NodeJS excel 匯出(exceljs)
阿新 • • 發佈:2019-02-04
1、先來個匯入
excel
解析方法
var Excel = require('exceljs');
var workbook = new Excel.Workbook();
var data = [];
workbook.xlsx.readFile('import.xlsx')
.then(function(){
var worksheet = workbook.getWorksheet(1);
var row = worksheet.getRow(2);
row.eachCell(function(cell, colNumber){
var value = cell.value;
if(typeof value == "object") value = value.text;
data.push(value);
//console.log('Cell ' + colNumber + ' = ' + JSON.stringify(cell.value.text));
});
//console.log(worksheet.getRow(2));
console.log(JSON.stringify(data));
});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
測試結果
["易窗","天道絕","神王一段","太一神劍","龍麒麟"]
- 1
- 2
2、匯出
匯出效果
匯出方法
/**
* Created by alex on 17-2-23.
*/
var Excel = require('exceljs');
//cell style
var fills = {
solid: {type: "pattern", pattern:"solid", fgColor:{argb:"FFFFAAAA"}}
};
//create a workbook
var workbook = new Excel.Workbook();
//add header
var ws1 = workbook.addWorksheet("測試一");
ws1.addRow(["地址","地面"]);
ws1.addRow(["總人口", "不可計數"]);
ws1.addRow(["型別", "動物", "非動物"]);
ws1.addRow(["統計日期", "1111-11-11 11:11:11"]);
ws1.addRow();
//A6:E6
ws1.addRow(["你", "在", "說些", "神馬", "呢?"]);
ws1.getCell("A6").fill = fills.solid;
ws1.getCell("B6").fill = fills.solid;
ws1.getCell("C6").fill = fills.solid;
ws1.getCell("D6").fill = fills.solid;
ws1.getCell("E6").fill = fills.solid;
//7 - 13(A7:A13) - 7
ws1.addRow(["什麼跟神馬", 10, 1, "凡人修仙傳", 7]);
ws1.addRow(["","","","一號遺蹟", 2]);
ws1.addRow(["","","","六號遺蹟", 0]);
ws1.addRow(["","","","古國一號", 0]);
ws1.addRow(["","","","鍛體期", 0]);
ws1.addRow(["","","","合體期", 0]);
ws1.addRow(["","","","沒資質", 1]);
ws1.mergeCells("A7:A13")
ws1.mergeCells("B7:B13")
ws1.mergeCells("C7:C13")
//a6-e13 a b c d e
//ws1.getCell('A7').alignment = { vertical: 'middle', horizontal: 'center' };
rowCenter(ws1, 6, 13);
colWidth(ws1, [1,2,3,4,5], 20);
var ws2 = workbook.addWorksheet("測試二");
var ws3 = workbook.addWorksheet("測試三");
//設定 start-end 行單元格水平垂直居中/新增邊框
functionrowCenter(arg_ws, arg_start, arg_end) {
for(i = arg_start; i <= arg_end; i++) {
arg_ws.findRow(i).alignment = { vertical: 'middle', horizontal: 'center' };
//迴圈 row 中的 cell,給每個 cell新增邊框
arg_ws.findRow(i).eachCell(function(cell, index) {
cell.border = {
top: {style:'thin'},
left: {style:'thin'},
bottom: {style:'thin'},
right: {style:'thin'}
};
})
}
}
//設定 start-end 列的寬度
functioncolWidth(arg_ws, arg_cols, arg_width) {
for(i in arg_cols) {
arg_ws.getColumn(arg_cols[i]).width = arg_width;
}
}
//
workbook.xlsx.writeFile('test2.xlsx')
.then(function(){
console.log('生成 xlsx');
});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84