Узел exceljs чтение файла
Итак, согласно официальной документации я должен уметь читать документ excel, используя:
// read from a file
var workbook = new Excel.Workbook();
workbook.xlsx.readFile(filename)
.then(function() {
// use workbook
});
// pipe from stream
var workbook = new Excel.Workbook();
stream.pipe(workbook.xlsx.createInputStream());
У меня есть следующий документ:

Что мне нужно сделать, это в основном загрузить каждую строку в объект:
var excelObject = {competence1: '', competence2: ''}
, а затем сохраните его в массив.
Однако документация не дает мне больше информации о том, как я мог бы читать из этого файла. Он использует переменную под названием stream, однако эта переменная нигде не объясняется.
Знает ли кто-нибудь плагин и знаете, как я могу достичь своей цели?
4 ответов:
var workbook = new Excel.Workbook(); workbook.xlsx.readFile(filename) .then(function() { var worksheet = workbook.getWorksheet(sheet); worksheet.eachRow({ includeEmpty: true }, function(row, rowNumber) { console.log("Row " + rowNumber + " = " + JSON.stringify(row.values)); }); });
И в случае, если вы используете файл в качестве ArrayBuffer (например, файл был прочитан на клиенте с помощью FileReader.readAsArrayBuffer ()), затем, чтобы загрузить его с помощью этой библиотеки, вам нужно сделать следующее:
let workbook = new Excel.Workbook(); let stream = new Stream.Readable(); stream.push(file); // file is ArrayBuffer variable stream.push(null); workbook.xlsx.read(stream).then((workbook)=> { // get worksheet, read rows, etc });
Приведенный ниже фрагмент кода поможет вам прочитать пример файла.xlsx, который содержит две колонки 1. имя пользователя 2. пароль:. и я пытаюсь утверждать с помощью Мокко (чай), чтобы проверить соответствие типа данных.
var Excel = require('exceljs'); const assert = require("chai").assert; var workbook = new Excel.Workbook(); workbook.creator ="Naveen"; workbook.modified ="Kumar"; workbook.xlsx.readFile("sample.xlsx").then(function(){ var workSheet = workbook.getWorksheet("one"); workSheet.eachRow({ includeEmpty: true }, function(row, rowNumber) { currRow = workSheet.getRow(rowNumber); console.log("User Name :" + currRow.getCell(1).value +", Password :" +currRow.getCell(2).value); console.log("User Name :" + row.values[1] +", Password :" + row.values[2] ); assert.equal(currRow.getCell(2).type, Excel.ValueType.Number); // console.log("Row " + rowNumber + " = " + JSON.stringify(row.values)); }); })Надеюсь, это кому-то поможет
//Read a file var workbook = new Excel.Workbook(); workbook.xlsx.readFile("data/Sample.xlsx").then(function () { //Get sheet by Name var worksheet=workbook.getWorksheet('Sheet1'); //Get Lastrow var row = worksheet.lastRow //Update a cell row.getCell(1).value = 5; row.commit(); //Save the workbook return workbook.xlsx.writeFile("data/Sample.xlsx"); });
Comments