我正在处理一个项目,我需要将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": [
....
]
});
});
答案 0 :(得分:1)
您可以在此处为url
指定相对路径。
对于url = "LICENCIAMENTOS PROJECTOS.xlsx"
,oReq.open("GET", url, true);
中使用的路径为'./LICENCIAMENTOS PROJECTOS.xlsx'
。
对于文件夹中包含电子表格的应用程序结构:
index.html
spreadsheets/
LICENCIAMENTOS PROJECTOS.xlsx
您的url
路径 spreadsheets/LICENCIAMENTOS PROJECTOS.xlsx
或./spreadsheets/LICENCIAMENTOS PROJECTOS.xlsx
如果您想要回溯到某个其他位置的文件夹,其应用程序结构为:
app/
index.html
spreadsheets/
LICENCIAMENTOS PROJECTOS.xlsx
您的url
路径 ../spreadsheets/LICENCIAMENTOS PROJECTOS.xlsx
或./../spreadsheets/LICENCIAMENTOS PROJECTOS.xlsx
根据电子表格的位置,您可以回溯到它。