npm install exceljs
使用npm命令安裝以後,在所須要的文件中引入exceljs模塊:node
var Excel = require('exceljs');
var workbook = new Excel.Workbook();
npm
workbook.creator = 'WJY';
//設置建立者workbook.lastModifiedBy = 'Her';
//上次修改人workbook.created = new Date(1985, 8, 30);
//建立時間workbook.modified = new Date();
//修改時間api
更多詳細的關於建立工做簿的屬性設置請[參考官方][1]。
var sheet = workbook.addWorksheet('My Sheet');
// 建立標籤爲紅色的表格數組
var sheet = workbook.addWorksheet('My Sheet', {properties:{tabColor:{argb:'FFC0000'}}});
// 建立網格線隱藏的表格服務器
var sheet = workbook.addWorksheet('My Sheet', {properties: {showGridLines: false}});
// 建立第一行第一列凍結的表格ui
var sheet = workbook.addWorksheet('My Sheet', {views:[{xSplit: 1, ySplit:1}]});
// 經過表格名字(建立時的'My Sheet')插件
var worksheet = workbook.getWorksheet('My Sheet');
// 經過表格順序數(id),即第幾張表格,這裏注意,exceljs不是從0開始計算,而是1。excel
var worksheet = workbook.getWorksheet(1);
1.worksheet.getCell('A1').value = 'value';
這種方式較爲靈活,可填寫任意位置的表格,利用循環嵌套等方式可生成想要的表格。
合併單元格使用: worksheet.mergeCells('I2:J2');
此時合併了I2 J2兩個單元格。
2.若是數據是對象數組data=[{name:'a'},{name:'b'},{name:'c'}],也就是數據格式良好,有固定的鍵值對,那麼推薦這種方式:
先定好表頭code
worksheet.columns = [ { header: '姓名', key: 'name', width: 10 }, ];
header:參數即爲在表頭裏出現的值,key表示這列的值對應的對象的key(本例爲name),width爲表格列寬。
設置表頭以後,使用addrow方法便可將數據寫入表中,以下:對象
for(let i =0;i<data.length;i++){ worksheet.addRow(data[i]); }
var filename='test.xlsx';//生成的文件名 fpath=path.join(__dirname,'../download/'+filename)//文件存放路徑 workbook.xlsx.writeFile(fpath)//將workbook生成文件 .then(function() { //文件生成成功後執行的操做,這裏是將路徑返回客戶端,你能夠有本身的操做 res.send({filePath:filename}) });
有時候咱們數據格式良好,但須要實現自定義表頭(表頭有合併單元格、多級表頭等),這時該怎麼辦呢?
混合使用 worksheet.mergeCells()
及worksheet.getCell().value
設置表頭,以後使用
worksheet.columns = [ { key: 'name', width: 10 }, ];
注意:這裏沒有header的key,若是有,將會覆蓋咱們的自定義表頭內容。
後續正常調用
for(let i =0;i<data.length;i++){ worksheet.addRow(data[i]); }
便可。
更多資料參閱官方文檔若有問題可留言,互相交流解決。