Преобразование CSV ExcelJS не соответствует формулам - PullRequest
0 голосов
/ 02 мая 2019

Я использую 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 игнорирует столбцы формулы. Клетки просто приходят пустыми.

Когда я конвертирую один и тот же файл Excel в Microsoft Excel в .csv, все формулы соблюдаются, и в строке содержатся реальные значения, определяемые формулами.

Как мне добиться того же поведения через ExcelJS?

1 Ответ

0 голосов
/ 12 мая 2019

Я наконец понял это. Формулы преобразуются в реальные данные в приложении MS Excel. Для exceljs или любого другого npm нет способа сделать это автоматически.

Тем не менее, есть решение. Хотя громоздкий. Вам придется просеять все формулы, явно выполнить преобразование и записать его обратно в поля. https://gist.github.com/davidhq/0afed70985842cac6fc4e00f88a71bd2

...