Из моего приложения React я пытаюсь реализовать импорт / экспорт в Excel.Функция импорта в порядке, но как я могу получить результат в состояние?
Я пытаюсь использовать this.setState () внутри XLSX, но синтаксическая ошибка.но если я использую -> const data = XLSX ...., переменная данных не определена.
Пожалуйста, посмотрите приведенный ниже код, который импортирует успех, но не знаете, как получить его в состояние,пожалуйста, помогите проверить.
handleUpload(e) {
e.preventDefault();
const file = e.target.files[0];
const reader = new FileReader();
const rABS = !!reader.readAsBinaryString;
reader.onload = (e) => {
const bstr = e.target.result;
const wb = XLSX.read(bstr, {type:rABS ? 'binary' : 'array'});
const wsname = wb.SheetNames[0];
const ws = wb.Sheets[wsname];
// const data = XLSX.utils.sheet_to_json(ws); -> this work but cannot edit each row
XLSX.utils.sheet_to_json(ws).forEach(r => {
r.itemid = r.itemid.trim(),
!r.barcode ? r.barcode = "" : r.barcode = r.barcode.trim(),
r.itemname = r.itemname.trim(),
r.category = r.category.trim(),
!r.stocktype ? r.stocktype = "" : r.stocktype = r.stocktype.trim(),
!r.itemtype ? r.itemtype = "" : r.itemtype = r.itemtype.trim(),
r.wholesaleprice = Number(r.wholesaleprice),
r.retailprice = Number(r.retailprice),
!r.quantitystock ? r.quantitystock = 0 : r.quantitystock = Number(r.quantitystock),
!r.receivingquantity ? r.receivingquantity = 0 : r.receivingquantity = Number(r.receivingquantity),
!r.reorderlevel ? r.reorderlevel = 0 : r.reorderlevel = Number(r.reorderlevel),
!r.description ? r.description = "" : r.description = r.description.trim(),
!r.comment ? r.comment = "" : r.comment = r.comment.trim(),
this.createItem(r)
// this.createItem(r), -> syntax error
// this.setState({ data: r }) -> syntax error
});
//this.setState({ data: data });
//console.log(this.state.data);
};
if (rABS) reader.readAsBinaryString(file); else reader.readAsArrayBuffer(file);
}