ExcelJS CSV转换不遵守公式

时间:2019-05-02 15:56:43

标签: node.js excel exceljs

我正在使用ExcelJs将excel转换为.csv。根据公式确定了许多列。

    var workbook = new Excel.Workbook();

    workbook.xlsx.load(results.rows[0].map) //reading from PostGres bytea field
        .then(function () {
            function getMap() {
                return new Promise(resolve => {
                    workbook.csv
                    .writeFile(__dirname+ '/./uploads/'+results.rows[0].name+'.csv')
                    .then(function () {
                        resolve('done');
                    })

                })
            }
        }

这样生成的.csv文件将忽略公式列。单元格只是空的。

当我将Microsoft Excel中的相同excel转换为.csv时,将遵循所有公式,并且该行包含由公式确定的实际值。

如何通过ExcelJS实现相同的行为?

1 个答案:

答案 0 :(得分:0)

我终于想通了。 公式在MS Excel应用程序中转换为实数。 exceljs或任何其他npm都无法自动执行此操作。

也就是说,有一个解决方案。虽然麻烦。 您将不得不筛选所有公式,明确进行转换并将其写回到字段中。 https://gist.github.com/davidhq/0afed70985842cac6fc4e00f88a71bd2