使用 xlsx 模块读取 sheet 的前 n 行
Reading first n lines of sheet using xlsx module
我正在尝试使用 xlsx 模块从 excel sheet 中读取前五行数据。
最初,我尝试使用 sheet_to_json 方法将整个 sheet 数据转换为数组数组。
let sheetData = xlsx.utils.sheet_to_json(workbook.Sheets[sheetsList[i]], {
header: 1,
defval: '',
blankrows: true
});
但是当文件很大(sheet 中存在超过 10K 条记录)时会出现问题(内存不足)。
其次,我尝试使用以下 link:https://github.com/SheetJS/js-xlsx/issues/214#issuecomment-96843418
但我收到以下错误:
f:\xxx\node_modules\xlsx\xlsx.js:2774
function decode_range(range) { var x =range.split(":").map(decode_cell); return {s:x[0],e:x[x.length-1]}; }
^
TypeError: Cannot read property 'split' of undefined
我该如何解决?或者它们是否有任何其他可用的方法或模块,以便我可以从 csv、xlsx、xls 获取数据?
谢谢!
可以借助存在的 sheetRows 选项获取 sheet 的前 n 行。
因此,代码如下所示:
let workbook = xlsx.readFile(path, {sheetRows: 5})
let sheetsList = workbook.SheetNames
let sheetData = xlsx.utils.sheet_to_json(workbook.Sheets[sheetsList[i]], {
header: 1,
defval: '',
blankrows: true
});
这里我限制为前 5 行。
感谢所有尝试解决此问题的人。特别感谢 xlsx 社区成员。这是 link:https://github.com/SheetJS/js-xlsx/issues/1225
我正在尝试使用 xlsx 模块从 excel sheet 中读取前五行数据。 最初,我尝试使用 sheet_to_json 方法将整个 sheet 数据转换为数组数组。
let sheetData = xlsx.utils.sheet_to_json(workbook.Sheets[sheetsList[i]], {
header: 1,
defval: '',
blankrows: true
});
但是当文件很大(sheet 中存在超过 10K 条记录)时会出现问题(内存不足)。
其次,我尝试使用以下 link:https://github.com/SheetJS/js-xlsx/issues/214#issuecomment-96843418 但我收到以下错误:
f:\xxx\node_modules\xlsx\xlsx.js:2774
function decode_range(range) { var x =range.split(":").map(decode_cell); return {s:x[0],e:x[x.length-1]}; }
^
TypeError: Cannot read property 'split' of undefined
我该如何解决?或者它们是否有任何其他可用的方法或模块,以便我可以从 csv、xlsx、xls 获取数据?
谢谢!
可以借助存在的 sheetRows 选项获取 sheet 的前 n 行。
因此,代码如下所示:
let workbook = xlsx.readFile(path, {sheetRows: 5})
let sheetsList = workbook.SheetNames
let sheetData = xlsx.utils.sheet_to_json(workbook.Sheets[sheetsList[i]], {
header: 1,
defval: '',
blankrows: true
});
这里我限制为前 5 行。
感谢所有尝试解决此问题的人。特别感谢 xlsx 社区成员。这是 link:https://github.com/SheetJS/js-xlsx/issues/1225