È possibile leggere file xls/xlsx locali di grandi dimensioni in angularjs/Javascript senza utilizzare alcun liabrary, se no, quale è la libreria più adatta?Leggere il file xls/xlsx locale in javascript
6
A
risposta
14
Mentre alla ricerca di questo ho trovato questo:
parser di base implementata in JS puri:
http://oss.sheetjs.com/js-xls/ (file XLS, quello che si voleva)
http://oss.sheetjs.com/js-xlsx/ (/ XLSM/file XLSX xlsb)
che sto fornendo il riferimento How to parse Excel file in Javascript/HTML5
https://gist.github.com/psjinx/8002786
Spero che questo possa essere utile.
2
https://github.com/SheetJS/js-xlsx in questo momento è migliore. Ma a mio modo i file xlsx - non stanno leggendo, e file più vecchi della versione 2003 di Excel ha anche problemi. Ma nei documenti ufficiali scrivi allora è supportato. Ma forse ho solo questo problema. Io uso anche questa funzione per ottenere JSON da Excel:
var roa = XLSX.utils.sheet_to_row_object_array(worksheet);
3
uso questo codice per leggere
<script>
/* set up XMLHttpRequest */
var url = "test.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 first_sheet_name = workbook.SheetNames[0];
/* Get worksheet */
var worksheet = workbook.Sheets[first_sheet_name];
console.log(XLSX.utils.sheet_to_json(worksheet,{raw:true}));
}
oReq.send();
</script>
ho ottenuto l'errore quando ho eseguito la pagina "index.html: 125 Domexception non rilevata: impossibile creare 'Worker': non è possibile accedere allo script 'null' allo script 'file: /// D: /HealthCare%20AngularJS/excel%20upload/js-xlsx-master/xlsxworker2.js'. ' a xw_xfer (file: /// D:/HealthCare% 20AngularJS/excel% 20upload/js-xlsx-master/index.html: 125: 15) in xw (file: /// D: /HealthCare%20AngularJS/excel%20upload/js-xlsx-master/index.html: 143: 19) in FileReader.reader.onload (file: /// D: /HealthCare%20AngularJS/excel%20upload/js-xlsx-master/index.html: 292: 5) " – Vinoth