gpt4 book ai didi

javascript - 使用 js-xlsx 解析 Excel 工作表

转载 作者:行者123 更新时间:2023-11-29 10:11:56 25 4
gpt4 key购买 nike

我正在尝试解析用户指定目录中的所有 excel 文件,但我使用的 js-xlsx 库似乎需要手动导航。

var url = "/test-files/test.xlsx"; <-------- Located in the project directory
var oReq = new XMLHttpRequest();
oReq.open("GET", url, true);
oReq.responseType = "arraybuffer";

oReq.onload = function(e) {
var arraybuffer = oReq.response;

var data = new Uint8Array(arraybuffer);
var arr = new Array();
for (var i = 0; i != data.length; i++) arr[i] = String.fromCharCode(data[i]);
var bstr = arr.join("");

var workbook = XLSX.read(bstr, {
type: "binary"
});
}

oReq.send();

代码需要是动态的,因为它可以在任何地方打开 excel 文件。

有什么方法可以使用带有 js-xlsx 库的文件条目对象来解析 excel 文件?

最佳答案

对于那些可能好奇的人,我想出了一个解决方案。

为了动态创建给定 fileEntry 对象的路径,您必须首先将其转换为 Blob:

fileEntryObject.file(function(file) {});

然后将其转换为 window.URL,这样您的项目就可以访问所需文件的可读路径:

var newPath = window.URL.createObjectURL(file);

因此,即使您不知道如何从项目导航到文件,也可以像在函数中使用常规路径一样使用它:

fileEntryObject.file(function(file) {
var newPath = window.URL.createObjectURL(file);
var oReq = new XMLHttpRequest();
oReq.open("GET", newPath, true);
oReq.responseType = "arraybuffer";
oReq.onError = function(e) {
console.log('Error in reading excel file');
};
oReq.onload = function(e) {
var arraybuffer = oReq.response;
var data = new Uint8Array(arraybuffer);
var arr = new Array();
for (var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
var bstr = arr.join("");
var workbook = XLSX.read(bstr, {
type: "binary"
});

var sheet_name = workbook.SheetNames[1];
var worksheet = workbook.Sheets[sheet_name];
self.parseReceive(worksheet, callback);
// self.parseReceive(worksheet);
};
oReq.send();
});

关于javascript - 使用 js-xlsx 解析 Excel 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31842504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com