[英]Reading local Excel file with js-xlsx using Angular 13?
我的 Angular-CLI 前端开发服务器在localhost:4200
本地运行
我需要获取存储在我的 PC 上的本地 Excel 文件,读取其内容并从客户端对 API 进行一些调用。
我正在尝试使用 js-xlsx,使用npm install xlsx
它,但我找不到如何获取文件并读取其内容。
如何在 Angular 13 中使用 js-xlsx 导入本地 excel 文件?
这是工作示例
onFileChange(ev) {
let workBook = null;
let jsonData = null;
const reader = new FileReader();
const file = ev.target.files[0];
reader.onload = (event) => {
const data = reader.result;
workBook = XLSX.read(data, { type: 'binary' });
jsonData = workBook.SheetNames.reduce((initial, name) => {
const sheet = workBook.Sheets[name];
initial[name] = XLSX.utils.sheet_to_json(sheet);
return initial;
}, {});
const dataString = JSON.stringify(jsonData);
document.getElementById('output').innerHTML = dataString.slice(0, 300).concat("...");
this.setDownload(dataString);
}
reader.readAsBinaryString(file);
}
就我而言,我想要像这样的数据
[['1','2'],['3','4']]
也像这样的数据
{'1':'3','2':'4'}
所以我做了以下代码
uploadFile(uploadedFile){
let workBook = null;
const reader = new FileReader();
const file = uploadedFile[0];
reader.onload = (event) => {
const data = reader.result;
workBook = XLSX.read(data, { type: 'binary' });
const sheet_name_list = workBook.SheetNames;
this.xlData = XLSX.utils.sheet_to_json(workBook.Sheets[sheet_name_list[0]]);
log("xlData >>> ",JSON.stringify(this.xlData));
this.arraySaparater = (XLSX.utils.sheet_to_json(workBook.Sheets[sheet_name_list[0]], { header: 1 }));
this.arraySaparater = this.arraySaparater.filter((row)=>{
if(Array.isArray(row) && row.length){
return row;
}
else{
return false;
}
});
log('ArraySaparater >>>',JSON.stringify(this.arraySaparater));
}
reader.readAsBinaryString(file);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.