Modify existing Excel File using node.js

后端 未结 4 1660
轻奢々
轻奢々 2021-01-03 22:38

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

相关标签:
4条回答
  • 2021-01-03 23:01

    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');
    
    0 讨论(0)
  • 2021-01-03 23:04
        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-

    1. Modify the file.
    2. Write the data to another file.
    3. Delete the previous file.
    4. Rename the newer file.
    0 讨论(0)
  • 2021-01-03 23:08

    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.

    0 讨论(0)
  • 2021-01-03 23:10

    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.

    0 讨论(0)
提交回复
热议问题