#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. Я думаю, мне следует передать мой загруженный файл в качестве параметра моей функции чтения файла и определить его вне функции