excel - Angular如何使用typeScript从资产文件夹中读取excel文件
问题描述
不好意思问,但为了解决我的问题,我需要问。因此,我在从 Angular 项目中的 excel 文件中读取数据时遇到问题。该文件位于资产文件夹中。
我知道如何从文件夹中获取文件。
在ngOnInit内的app.component.ts 中,我得到一个文件:
ngOnInit() {
this.http.get('assets/dataTest.xlsx').subscribe((data: any) => {
console.log("get: " + data);
});
}
我如何理解http.get我需要使用下面的代码:
const reader: FileReader = new FileReader();
reader.onload = (e: any) => {
console.log("READ " + e);
};
reader.readAsBinaryString(data);
但它不起作用。我收到一个错误:
错误类型错误:无法在“FileReader”上执行“readAsBinaryString”:参数 1 不是“Blob”类型。
请帮助我从位于assets文件夹中的excel文件中读取数据。
解决方案
我建议使用库来解析 excel 文件。
请参阅SheetJs的示例:
/* <input type="file" (change)="onFileChange($event)" multiple="false" /> */
/* ... (within the component class definition) ... */
onFileChange(evt: any) {
/* wire up file reader */
const target: DataTransfer = <DataTransfer>(evt.target);
if (target.files.length !== 1) throw new Error('Cannot use multiple files');
const reader: FileReader = new FileReader();
reader.onload = (e: any) => {
/* read workbook */
const bstr: string = e.target.result;
const wb: XLSX.WorkBook = XLSX.read(bstr, {type: 'binary'});
/* grab first sheet */
const wsname: string = wb.SheetNames[0];
const ws: XLSX.WorkSheet = wb.Sheets[wsname];
/* save data */
this.data = <AOA>(XLSX.utils.sheet_to_json(ws, {header: 1}));
};
reader.readAsBinaryString(target.files[0]);
}
推荐阅读
- bash - 如何在 Bash 中计算整数列表的总和
- nativescript - 使用谷歌提供商登录 Nativescript 应用程序的问题
- git - 如何显示实际上导致两个分支之间差异的 git 提交列表?
- javascript - 在浏览器关闭时为 React 明确清除本地存储
- python - 我的 Python 程序应该使用哪些 OpenCV FOURCC 编解码器?
- c# - 调用 PropertyChangedEventHandler 时出现 InvalidCastException
- flutter - 没有为类“_createWeckerPage”定义方法“selectTime”
- mysql - 修改关键字与修改列关键字
- arrays - 有没有一种方法可以构建有效的 vba 函数,它将一个范围作为其参数并返回一个唯一值数组(从重复中释放)?
- reactjs - 在reactjs中搜索元素并返回对应的对象