首页 > 解决方案 > ExcelJS CSV 转换无法遵守公式

问题描述

我正在使用 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 实现相同的行为?

标签: node.jsexcelexceljs

解决方案


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

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


推荐阅读