节点exceljs读取文件
Node exceljs reading file
所以根据官方文档,我应该能够使用以下方法阅读 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
的变量,但是这个变量在任何地方都没有解释。
有人知道这个插件并知道我如何实现我的目标吗?
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
});
下面的代码片段将帮助您阅读文件 sample.xlsx,其中包含两列 1. 用户名 2. 密码。我正在尝试使用 Mocha(chai) 进行断言,以检查数据类型是否匹配。
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");
});
第 1 步:使用 npm
下载 exceljs 模块
第二步:使用下面的代码从excel
中读取数据
import { Workbook, Worksheet } from 'exceljs';
public static async getExcelD(filename: string, column1Item: string) {
let wb:Workbook = new Workbook();
let datafile = path.join(__dirname, "../testData", filename);
await wb.xlsx.readFile(datafile).then(async ()=>{
let sh:Worksheet = wb.getWorksheet("Sheet1");
for(let i=1;i<=sh.actualRowCount;i++){
if(sh.getRow(i).getCell(1).value==column1Item){
data1 = sh.getRow(i).getCell(2).value;
}
}
})
return await data1;
}
我收到 .xls 文件错误。在尝试了所有排列和组合之后,我将 .xls 文件转换为 .xlsx 并且它起作用了。
const Excel = require('exceljs/dist/es5');
const readExcel = async () => {
//You can use the absolute path also
let filepath = './genovaFile.xlsx';
let workbook = new Excel.Workbook();
await workbook.xlsx.readFile(filepath);
//You can use the index number also eg. 0 for selecting the sheet
let worksheet = workbook.getWorksheet("sheet1");
worksheet.eachRow({ includeEmpty: true }, async (row, rowNumber) => {
console.log("row " + row.values);
})
}
所以根据官方文档,我应该能够使用以下方法阅读 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
的变量,但是这个变量在任何地方都没有解释。
有人知道这个插件并知道我如何实现我的目标吗?
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
});
下面的代码片段将帮助您阅读文件 sample.xlsx,其中包含两列 1. 用户名 2. 密码。我正在尝试使用 Mocha(chai) 进行断言,以检查数据类型是否匹配。
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");
});
第 1 步:使用 npm
下载 exceljs 模块第二步:使用下面的代码从excel
中读取数据import { Workbook, Worksheet } from 'exceljs';
public static async getExcelD(filename: string, column1Item: string) {
let wb:Workbook = new Workbook();
let datafile = path.join(__dirname, "../testData", filename);
await wb.xlsx.readFile(datafile).then(async ()=>{
let sh:Worksheet = wb.getWorksheet("Sheet1");
for(let i=1;i<=sh.actualRowCount;i++){
if(sh.getRow(i).getCell(1).value==column1Item){
data1 = sh.getRow(i).getCell(2).value;
}
}
})
return await data1;
}
我收到 .xls 文件错误。在尝试了所有排列和组合之后,我将 .xls 文件转换为 .xlsx 并且它起作用了。
const Excel = require('exceljs/dist/es5');
const readExcel = async () => {
//You can use the absolute path also
let filepath = './genovaFile.xlsx';
let workbook = new Excel.Workbook();
await workbook.xlsx.readFile(filepath);
//You can use the index number also eg. 0 for selecting the sheet
let worksheet = workbook.getWorksheet("sheet1");
worksheet.eachRow({ includeEmpty: true }, async (row, rowNumber) => {
console.log("row " + row.values);
})
}