【发布时间】:2020-06-27 18:46:20
【问题描述】:
我正在开发一个 Electron/Node.js 应用程序以在本地读取 excel 文件并进行一些计算。
excel 文件包含 100,000 行,每行包含一个时间戳和一个当时的值。
12/17/2019 12:00:00 AM | 600
我可以使用SheetJS包读取文件,代码如下
var XLSX = require('xlsx');
function readExcelandDraw(fileName){
var workbook = XLSX.readFile(fileName);
var sheet = workbook.Sheets[workbook.SheetNames[0]];
var range = XLSX.utils.decode_range(sheet['!ref']);
var dataArray = [];
for(var R = range.s.r; R<=range.e.r; ++R){
let timecellref = XLSX.utils.encode_cell({c:0, r:R});
let psicellref = XLSX.utils.encode_cell({c:1, r:R});
if(!sheet[timecellref] && !sheet[psicellref]) continue; // if cell doesn't exist, move on
let tempTime = sheet[timecellref].v;
let tempPSI = sheet[psicellref].v;
dataArray.push({
Time: getJsDateFromExcel(tempTime),
psi: tempPSI*6.9
});
}
// then plot the dataArray use d3.js
}
读取 600,000 行的 excel 文件大约需要 25 秒。
第一季度。是否可以添加进度条来指示 XLSX.readFile 的进度?
附带问题: XLSX.readFile 是不是和node.js 中的fs.readfile() 一样的异步函数? 没有
提前致谢。
【问题讨论】:
标签: javascript node.js excel progress-bar sheetjs