Не уверен, что происходит с этим, если мой синтаксис неверен и / или если я что-то упустил в своем коде.
Предполагается, что мой проект анализирует файл Excel и отображает его данные в консоли, но у меня проблемы с reader.onload
... отладчик проходит через него и его значения возвращаются как ноль.
HTML:
<input class="getFile" id="getFile" type="file" name="files[]" multiple="multiple"/><br />
JS:
<script>
const ExcelToJSON = function(files) {
this.parseExcel = function(files) {
debugger;
let reader = new FileReader();
reader.onload = function(e) { // this isn't hit at all
console.log("load evt has been fired");
try {
let data = e.target.result; // FileReader.result
console.log("data: ", data)
let workbook = XLSX.read(data, { type: 'binary' });
workbook.SheetNames.forEach((sheetName) => {
let XL_row_object = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]);
let json_object = JSON.stringify(XL_row_object);
console.log(JSON.parse(json_object))
$('#jsonData').val(XL_row_object);
})
} catch(err) {
console.log(err)
}
}
// reader.onload
reader.onerror = function(err) {
console.log(err);
}
// reader.readAsBinaryString(files); // tells JS to start reading the file
} // this.parseExcel
} // ExcelToJSON
function handleFileSelect(evt) {
let files = evt.target.files; // FileList object
let xl2json = new ExcelToJSON(files);
xl2json.parseExcel(files[0]);
let xl2String = JSON.stringify(xl2json);
let addlistItem = new AddItemToSPList();
AddItemToSPList(xl2String[0].Title, xl2String[0].Office);
console.log(xl2String) // empty obj...
}
const AddItemToSPList = function(title, office) {
// working as intended
}
</script>
<script>
document.getElementById('getFile').addEventListener('change', handleFileSelect, false);
</script>