【发布时间】:2018-01-12 04:28:19
【问题描述】:
我正在做一个项目,我需要将 Excel 工作表转换为 JSON,然后转换后的数据将在浏览器上显示为 jQuery Datatables。 我的代码工作正常,但只有当我在 html 文件的同一文件夹中有 Excel 文件时。如何从其他文件夹获取 excel 文件的路径以在我的脚本中使用?
这是我的代码:
function asyncReq(callback) {
var url = "LICENCIAMENTOS PROJECTOS.xlsx";
var oReq = new XMLHttpRequest();
oReq.open("GET", url, true);
oReq.responseType = "arraybuffer";
oReq.onload = function(e) {
var arraybuffer = oReq.response;
/* convert data to binary string */
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("");
/* Call XLSX */
var workbook = XLSX.read(bstr, {
type: "binary"
});
/* DO SOMETHING WITH workbook HERE */
var sheet_name = workbook.SheetNames[22];
/* Get worksheet */
var worksheet = workbook.Sheets[sheet_name];
/*RANGE DA TABELA*/
//worksheet['!ref'] = "A10:AL363";
var data = XLSX.utils.sheet_to_json(worksheet, {range: 4});
$("h4").remove();
callback(data);
}
oReq.send();
}
asyncReq(function(result) {
console.log(result);
$("#tabela-data").show();
//DataTable
$('#tabela-data').DataTable({
"language": {
"lengthMenu": "Apresentar _MENU_ linhas por página",
"search": "Pesquisar:",
"info": "Apresentadas _START_ a _END_ de _TOTAL_ linhas",
"next": "Próximo",
"previous": "Anterior"
},
"dom": '<"pull-left"f><"pull-right"l>tip',
"aaData": result,
"aoColumns": [
....
]
});
});
【问题讨论】:
-
调整
url以反映位置。我们不知道它相对于您的页面的位置 -
我必须将文件放在我桌面上的文件夹中。我可以用文件路径声明 url,但我收到此错误:XMLHttpRequest cannot load file:///C:/Users/username/Desktop/Licenciamentos/LICENCIAMENTOS%20PROJECTOS.xlsx。跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https。
-
因为那不是网络路径。此页面是从服务器打开的 - 本地主机还是远程?
-
好的,我明白了。对不起,如果我没有更好地解释自己。但是是否可以访问该文件?
-
当页面在 localhost 服务器上运行时不应该看到硬盘路径,也不应该在 url 中使用硬盘路径
标签: javascript json excel path