我正在做一个项目,我需要将Excel工作表转换为JSON,之后转换的数据将在浏览器上与jQuery数据表一起显示。 我的代码工作正常,但只有当我将 Excel 文件放在 html 文件的同一文件夹中时。如何从其他文件夹获取 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 = "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
根据电子表格的位置,您可以回溯到它。