我无法从Angular 4中的Excel工作表中获取数据.
下面是我的代码示例.
下面是我的代码示例.
<input id="my-file-selector" type="file" (change)="uploadData($event)" name="uploadExcel">
upload.component.ts:
public uploadData(event: any) : void { // get data from file upload let filesData = event.target.files; console.log(filesData[0]); }
解决方法
你应该遵循这3个步骤
第1步:导入ts-xlsx
参考:https://www.npmjs.com/package/ts-xlsx安装
第2步:使用FileReader转换为arraybuffer
第3步:使用XLSX读取arraybuffer并转换为工作簿
<input type="file" style="display: inline-block;" (change)="incomingfile($event)" placeholder="Upload file" accept=".xlsx"> <button type="button" class="btn btn-info" (click)="Upload()" >Upload</button>
打字稿
//import it import * as XLSX from 'ts-xlsx'; //inside export class arrayBuffer:any; file:File; incomingfile(event) { this.file= event.target.files[0]; } Upload() { let fileReader = new FileReader(); fileReader.onload = (e) => { this.arrayBuffer = fileReader.result; var data = new Uint8Array(this.arrayBuffer); var arr = new Array(); for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]); var bstr = arr.join(""); var workbook = XLSX.read(bstr,{type:"binary"}); var first_sheet_name = workbook.SheetNames[0]; var worksheet = workbook.Sheets[first_sheet_name]; console.log(XLSX.utils.sheet_to_json(worksheet,{raw:true})); } fileReader.readAsArrayBuffer(this.file); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。