我正在读取一个Excel文件,将那些数据转换为json并将这些数据显示在react表中。下面的代码是我用来读取这些数据并将其设置为状态的方法。
handleFiles = async event => {
debugger;
var fileType = "xlsx";
if (event.target.files && event.target.files[0]) {
var extension = event.target.files[0].name
.split(".")
.pop()
.toLowerCase(), //file extension from input file
isSuccess = fileType.indexOf(extension) > -1; //is extension in acceptable types
if (isSuccess) {
//yes
var reader = new FileReader();
reader.onload = event => {
// alert("Valid File extension");
const bstr = event.target.result;
const wb = XLSX.read(bstr, { type: "binary" });
/* Get first worksheet */
const wsname = wb.SheetNames[0];
const ws = wb.Sheets[wsname];
/* Convert array of arrays */
const data = XLSX.utils.sheet_to_json(ws);
console.log("Array is , ", data);
this.setState({
data: XLSX.utils.sheet_to_json(ws),
isShown: false,
valid: true
});
/* Update state */
};
reader.readAsBinaryString(event.target.files[0]);
} else {
//no
// alert("Invalid File Type ");
await this.setState({
valid: false,
msg: "Invalid File Type"
});
}
}
};
有人可以帮我删除重复的记录吗?
答案 0 :(得分:0)
如果sheet_to_json返回一个对象数组,则可以使用lodash删除重复项。
您可以在这里uniqWith
答案 1 :(得分:0)
之后
const data = XLSX.utils.sheet_to_json(ws);
您可以尝试以下操作:
const filteredData = [...new Set(data)];
console.log(filteredData);