2017-10-07 162 views
1

我已经尝试创建一个excel,但得到一个提交错误。我的代码有什么问题。如果我删除sheet.commit()workbook.commit()程序工作正常。exceljs提交错误

const Excel = require('exceljs'); 
const fs = require('fs'); 

const workbook = new Excel.Workbook(); 
const sheet = workbook.addWorksheet("MySheet"); 
const writeToExcel = fs.createWriteStream("./test/testfile.xlsx"); 

sheet.columns = [ 
    { header: 'Id', key: 'id', width: 10 }, 
    { header: 'Name', key: 'name', width: 40 }, 
    { header: 'DOB', key: 'dob', width: 10, outlineLevel: 1} 
]; 


let names = ['Windows', 'Mac Os', 'Ubuntu', 'B OS']; 
let i = 2; 

names.forEach((singleName) => { 
    let row = sheet.getRow(i); 
    row.values = { 
     id: i-1, 
     name: singleName, 
     dob: new Date() 
    }; 
    row.commit(); 
    i++; 
}); 

sheet.commit(); 
workbook.commit(); 

workbook.xlsx.write(writeToExcel) 
.then((response) => { 
    console.log("Excel file is created with data."); 
}) 
.catch((error) => { 
    console.log("Some problem in creating an excel file. Please check for errors..."); 
}); 

以下是错误。

λ node excel.js 
c:\Personal\node_projects\node-js-playlist-master\excel.js:29 
sheet.commit(); 
    ^

TypeError: sheet.commit is not a function 
    at Object.<anonymous> (c:\Personal\node_projects\node-js-playlist-master\excel.js:29:7) 
    at Module._compile (module.js:624:30) 

如果我删除工作表落实,错误在工作簿落实线上抛出。任何帮助在这里是有用的..

+0

任何帮助是可观的。 – mmar

+0

对此有任何帮助请.... – mmar

回答

0

不知道你是否找到了你的答案。

具有提交功能的唯一对象是行和XLSX流。

你已经通过自己犯了

row.commit(); 

表的每一行都没有提交功能,行办。你可能在例子中发现的东西是这样的:

sheet.addRow([...]).commit(); 

但是,这不是提交在工作表上,而是在行上。

至于工作簿提交。你可能已经看到了提交的this example,但是这又是对XLSX流的提交,而不是工作簿本身。