官方github:https://github.com/SheetJS/js-xlsx
1. 安装 xlsx.full.min.js
npm install xlsx
npm install @types/xlsx
或者 github上下载,找到dist文件夹下的xlsx.full.min.js,引入即可
2.angular.json中导入xlsx.full.min.js
"node_modules/xlsx/dist/xlsx.full.min.js"
3.在要使用xlsx的ts文件
import * as XLSX from 'xlsx';
4.html
<input type="file" class="updateFile" (change)="updateFile($event)">
5.typescript
private data;//存放Excel中的数据
updateFile($event) {
const target: DataTransfer = ($event.target) as DataTransfer;
if (target.files.length !== 0) {
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];
this.data =JSON.stringify(XLSX.utils.sheet_to_json(ws));
console.log(this.data);
};
reader.readAsBinaryString(target.files[0]);
}
其他:
FileReader共有4种读取方法:
1.readAsArrayBuffer(file):将文件读取为ArrayBuffer。
2.readAsBinaryString(file):将文件读取为二进制字符串
3.readAsDataURL(file):将文件读取为Data URL
4.readAsText(file, [encoding]):将文件读取为文本,encoding缺省值为'UTF-8'