Is there any way to modify existing excel file in node.js? I\'ve looked into exceljs but it does not provide any functionality that will just modify the existing data. It se
Thankyou all answer. same file you can update row value by below code No need to rename or create new file.
let filename = 'src/write.xlsx';
let workbook = new Excel.Workbook();
await workbook.xlsx.readFile(filename);
let worksheet = workbook.getWorksheet("Sheet1");
// header id name dob
let row = worksheet.getRow(3);
console.log(row);
row.getCell(1).value = 2;
row.getCell(2).value = 'test';
row.getCell(3).value = '12/09/1991';
row.commit();
workbook.xlsx.writeFile('src/write.xlsx');
function faaltu(){
workbook.xlsx.readFile(__dirname+"/Question-file.xlsx")
.then(function() {
var worksheet = workbook.getWorksheet(1);
var row = worksheet.getRow(2);
console.log(worksheet.rowCount);
console.log(row.getCell(1).value)
console.log(row.getCell(2).value);
var row2=worksheet.getRow(3);
row2.getCell(1).value=2;
row2.getCell(2).value='sasasas';
row2.commit();
console.log(worksheet.rowCount);
console.log(row2.getCell(1).value)
console.log(row2.getCell(2).value);
workbook.xlsx.writeFile(__dirname+"/new.xlsx");
})
.then(()=>{
var filePath = __dirname+"/Question-file.xlsx";
fs.unlinkSync(filePath);
fs.rename(__dirname+"/new.xlsx", filePath, function(err) {
if ( err ) console.log('ERROR: ' + err);
});
});
/*fs.rename(__dirname+"/new.xlsx", "Question-file.xlsx", function(err) {
if ( err ) console.log('ERROR: ' + err);
});*/
}
Steps-
exceljs does let you modify Excel spreadsheets.
Here's an example of reading in an existing spreadsheet and writing it back out to a different file:
var Excel = require('exceljs');
var workbook = new Excel.Workbook();
workbook.xlsx.readFile('old.xlsx')
.then(function() {
var worksheet = workbook.getWorksheet(1);
var row = worksheet.getRow(5);
row.getCell(1).value = 5; // A5's value set to 5
row.commit();
return workbook.xlsx.writeFile('new.xlsx');
})
If you're using the Streams API with exceljs
, you can also pipe your stream into fs.createWriteStream
to write to a file as well.
You can modify excel, below is the example.
var Excel = require('exceljs');
async function excelOp() {
let workbook = new Excel.Workbook();
workbook = await workbook.xlsx.readFile('question_39869739.xlsx'); // replace question_39869739.xls with your file
let worksheet = workbook.getWorksheet('sheetname'); // replace sheetname with actual sheet name
worksheet.getRow('rowNumber').getCell('cellNumber').value = 350; // replace rowNumber and cellNumber with the row and cell you want to modify
workbook.xlsx.writeFile('question_50508131.xlsx');
}
excelOp();
Have a look at https://www.npmjs.com/package/exceljs#interface for all the possible operations with exceljs.