修改现有Excel文件而不改变原始格式和链接

Ram*_*iga 4 excel node.js exceljs

我正在开发一个 NodeJS 项目,我需要修改现有的 Excel 电子表格,但不更改原始格式或链接,只需向几个单元格添加值。目前,我一直在使用exceljs它来修改电子表格,但输出会删除所有原始样式、格式和链接。

是否有另一个 javascript npm 或库可以帮助我解决这个问题,或者是否可以exceljs

这是我到目前为止所拥有的:

Fetch('url of the file')
    .then(res => res.buffer())
    .then(buffer => {
        var workbook = new Excel.Workbook();
        workbook.xlsx.load(buffer).then(function() {
            var worksheet = workbook.getWorksheet(1);
            var row = worksheet.getRow(4);
            row.getCell(2).value = 'It works!';
            row.commit();

            workbook.xlsx.write(stream)
                .then(function() {
                    // done
                    // here I take the stream and upload it to an AWS S3 bucket
                });
        });
    })
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ram*_*iga 5

我发现另一个npm效果很好!这是xlsx-populate

这是用于exceljs完成相同工作的相同代码:

Fetch('file url')
    .then(res => res.buffer())
    .then(buffer => {
        XlsxPopulate.fromDataAsync(buffer)
            .then(workbook => {
                // Make edits.
                workbook.sheet(0).cell("A1").value("foo");

                // Get the output
                return workbook.outputAsync();
            })
            .then(data => {
                // upload data to AWS S3
            })
            .catch(err => console.error(err));
    });
Run Code Online (Sandbox Code Playgroud)

希望这对经历同样案例的人有所帮助:)