按路径打开 excel 文件 xlsx.js
open excel file with xlsx.js by path
您好,我想用 xlsx.js 库打开扩展名为 xlsx 的 excel 文件。
我可以通过 html 输入打开文件,但我想使用文件路径打开它。
我从 xlsx.js 演示中提取了这段代码:
function handleFile(e) {
rABS = false;
use_worker = false;
console.log(e);
var files = e.target.files;
var f = files[0]; {
var reader = new FileReader();
var name = f.name;
reader.onload = function (e) {
if (typeof console !== 'undefined')
console.log("onload", new Date(), rABS, use_worker);
var data = e.target.result;
console.log("target result >>>>>>>>> " + e.target.result);
if (use_worker) {
xw(data, process_wb);
} else {
var wb;
if (rABS) {
wb = X.read(data, {
type : 'binary'
});
} else {
var arr = fixdata(data);
wb = X.read(btoa(arr), {
type : 'base64'
});
}
process_wb(wb);
}
};
if (rABS)
reader.readAsBinaryString(f);
else
reader.readAsArrayBuffer(f);
}
}
我想要这样的东西:
var file = new File([""],"C:\Users\PalFS\Downloads\Fiverr_Example_List (1).xlsx");
var data = file;
如何执行此操作或如何将此文件转换为 arraybuffer,就像它从 var data = e.target.result; 返回一样。
谢谢
您可以在 chrome 处使用 --allow-file-access-from-files
标记,将 XMLHttpRequest
设置为 .responseType
的 chromium 设置为 "arraybuffer"
以从中检索 .xlsx
文件本地文件系统为 ArrayBuffer
;将 new File()
数据设置为返回 ArrayBuffer
。 new File()
构造函数的第二个参数应设置创建文件的 .name
属性。
启动/path/to/chrome --allow-file-access-from-files
var request = new XMLHttpRequest();
// may be necessary to escape path string?
request.open("GET", "C:\Users\PalFS\Downloads\Fiverr_Example_List (1).xlsx");
request.responseType = "arraybuffer";
request.onload = function () {
// this.response should be `ArrayBuffer` of `.xlsx` file
var file = new File(this.response, "Fiverr_Example_List.xlsx");
// do stuff with `file`
};
request.send();
您好,我想用 xlsx.js 库打开扩展名为 xlsx 的 excel 文件。 我可以通过 html 输入打开文件,但我想使用文件路径打开它。
我从 xlsx.js 演示中提取了这段代码:
function handleFile(e) {
rABS = false;
use_worker = false;
console.log(e);
var files = e.target.files;
var f = files[0]; {
var reader = new FileReader();
var name = f.name;
reader.onload = function (e) {
if (typeof console !== 'undefined')
console.log("onload", new Date(), rABS, use_worker);
var data = e.target.result;
console.log("target result >>>>>>>>> " + e.target.result);
if (use_worker) {
xw(data, process_wb);
} else {
var wb;
if (rABS) {
wb = X.read(data, {
type : 'binary'
});
} else {
var arr = fixdata(data);
wb = X.read(btoa(arr), {
type : 'base64'
});
}
process_wb(wb);
}
};
if (rABS)
reader.readAsBinaryString(f);
else
reader.readAsArrayBuffer(f);
}
}
我想要这样的东西:
var file = new File([""],"C:\Users\PalFS\Downloads\Fiverr_Example_List (1).xlsx");
var data = file;
如何执行此操作或如何将此文件转换为 arraybuffer,就像它从 var data = e.target.result; 返回一样。
谢谢
您可以在 chrome 处使用 --allow-file-access-from-files
标记,将 XMLHttpRequest
设置为 .responseType
的 chromium 设置为 "arraybuffer"
以从中检索 .xlsx
文件本地文件系统为 ArrayBuffer
;将 new File()
数据设置为返回 ArrayBuffer
。 new File()
构造函数的第二个参数应设置创建文件的 .name
属性。
启动/path/to/chrome --allow-file-access-from-files
var request = new XMLHttpRequest();
// may be necessary to escape path string?
request.open("GET", "C:\Users\PalFS\Downloads\Fiverr_Example_List (1).xlsx");
request.responseType = "arraybuffer";
request.onload = function () {
// this.response should be `ArrayBuffer` of `.xlsx` file
var file = new File(this.response, "Fiverr_Example_List.xlsx");
// do stuff with `file`
};
request.send();