Прочитать файл Excel из Google Cloud Storage - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь прочитать электронную таблицу, загруженную в Google Storage из приложения Nodejs, работающего в App Engine.

Функцией, предлагаемой @ google-cloud / storage package в Nodejs, является createReadStream ().Я передаю этот поток объекту Exceljs.

Код выглядит следующим образом:

const blob = bucket.file(req.file.originalname);
const blobStream = blob.createWriteStream();
blobStream.on('finish', () => {

    let readStream = storage.bucket(bucket.name).file(blob.name).createReadStream();

    let returnString = '';

    const workbook = new Excel.stream.xlsx.WorkbookReader();
        var options = {
        entries: "emit",
        sharedStrings: "cache",
        worksheets: "emit"
    };

    workbook.read(readStream, options);

    workbook.on('worksheet', function (worksheet) {
        console.log("worksheet", worksheet.name);
        worksheet.on('row', function (row) {
            if(row.values.length > 0){
                console.log(" row.values", row.values[1]);
                returnString += row.values[1] + " ";
            }
        });

        worksheet.on('close', function () {
            console.log("worksheet close");
        });

        worksheet.on('finished', function () {
            console.log("worksheet finished");
            res.send(returnString);
        });
    });
});

blobStream.end(req.file.buffer);

Получает ли workbook.read (readStream, options) правильный readStream?

Поскольку я получаю следующую ошибку, упоминающую это:

UnhandledPromiseRejectionWarning: Error: Could not recognise input
2019-07-07 20:35:09 default[20190708t020308]      at module.exports._getStream (/srv/node_modules/exceljs/dist/es5/stream/xlsx/workbook-reader.js:58:11)
2019-07-07 20:35:09 default[20190708t020308]      at module.exports.read (/srv/node_modules/exceljs/dist/es5/stream/xlsx/workbook-reader.js:79:37)
2019-07-07 20:35:09 default[20190708t020308]      at Pumpify.blobStream.on (/srv/app.js:80:14)
2019-07-07 20:35:09 default[20190708t020308]      at Pumpify.emit (events.js:198:13)
2019-07-07 20:35:09 default[20190708t020308]      at finishMaybe (/srv/node_modules/readable-stream/lib/_stream_writable.js:630:14)
2019-07-07 20:35:09 default[20190708t020308]      at afterWrite (/srv/node_modules/readable-stream/lib/_stream_writable.js:492:3)
2019-07-07 20:35:09 default[20190708t020308]      at onwrite (/srv/node_modules/readable-stream/lib/_stream_writable.js:483:7)
2019-07-07 20:35:09 default[20190708t020308]      at Pumpify.WritableState.onwrite (/srv/node_modules/readable-stream/lib/_stream_writable.js:180:5)
2019-07-07 20:35:09 default[20190708t020308]      at Object.onceWrapper (events.js:286:20)
2019-07-07 20:35:09 default[20190708t020308]      at Pumpify.emit (events.js:198:13)
2019-07-07 20:35:09 default[20190708t020308]      at Pumpify.Duplexify.uncork (/srv/node_modules/duplexify/index.js:77:50)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...