Как я могу отредактировать файл, опубликованный Multer, с помощью excel.js библиотека?

#javascript #node.js #excel #express #multer

#javascript #node.js #excel #экспресс #multer

Вопрос:

Я работаю над проектом, который оценивает электронную таблицу, а затем вносит в нее изменения, но мои изменения не сохраняются. Я использовал multer для сохранения CSV в ‘uploads / HVACresultfile.csv», но, похоже, я не могу отредактировать его и записать должным образом с помощью excel.js Библиотека NPM. чего я не понимаю?

 var express = require('express');
var router = express.Router();
const multer = require('multer');
var Excel = require('exceljs');
const index = require("../routes/index")
console.log('hvac doctor loads')

function readFile () {
var workbook = new Excel.Workbook();
var resultFile = workbook.csv.readFile('uploads/HVACresultfile.csv')
var worksheet = workbook.getWorksheet('uploads/HVACresultfile.csv')
.then(function(resultFile) {
        resultFile.modified = new Date();
        worksheet.getCell('A9').border = {
            top: {style:'double', color: {argb:'FF00FF00'}},
            left: {style:'double', color: {argb:'FF00FF00'}},
            bottom: {style:'double', color: {argb:'FF00FF00'}},
            right: {style:'double', color: {argb:'FF00FF00'}}
        };
        console.log('reads')
        writeFile()
    })};

function writeFile (workbook) {
    var workbook = createAndFillWorkbook('uploads/HVACresultfile.csv');
    workbook.xlsx.writeFile('wutwut')
        .then(function() {
            console.log('written as xlsx')
        });
    }


readFile()
  

Редактировать: Вот конкретная ошибка.

 TypeError: Cannot read property 'then' of undefined
    at readFile (***/***/hvacdoctor/controllers/hvacdoctor.js:12:5)
  

Конкретная ошибка заключается в том, что не удается прочитать свойство then из undefined. но разве я не все определил?

Ответ №1:

Внутри функции WriteFile вы инициализировали рабочую книгу с помощью функции, не представленной в примере. Пожалуйста, передайте книгу, которую вы создали в функции ReadFile, в качестве параметра для WriteFile.

     function readFile () {
       /*
           workbook editing done here
        */
        writeFile(workbook)
    })};

    function writeFile (workbook) {
        workbook.xlsx.writeFile('wutwut')
        .then(function() {
            console.log('written as xlsx')
        });
    }

   readFile()
  

* PS: then используется в двух местах в вашем примере. Пожалуйста, поясните, в какой функции возникает ошибка. Поскольку у меня недостаточно репутации, чтобы комментировать, вместо того, чтобы просить ясности в комментарии, я публикую этот ответ с предположением, что ошибка в функции writefile.

Комментарии:

1. Я думаю, мне следует передать мой загруженный файл в качестве параметра моей функции чтения файла и определить его вне функции