alo*_*mar 14 typescript angular
我无法从Angular 4中的Excel工作表中获取数据.下面是我的代码示例.
HTML代码:
<input id="my-file-selector" type="file" (change)="uploadData($event)" name="uploadExcel">
Run Code Online (Sandbox Code Playgroud)
upload.component.ts:
public uploadData(event: any) : void {
// get data from file upload
let filesData = event.target.files;
console.log(filesData[0]);
}
Run Code Online (Sandbox Code Playgroud)
小智 28
你应该遵循这3个步骤
第1步:导入ts-xlsx参考:https://www.npmjs.com/package/ts-xlsx进行安装
第2步:使用FileReader转换为arraybuffer
第3步:使用XLSX读取arraybuffer并转换为工作簿
HTML代码
<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>
Run Code Online (Sandbox Code Playgroud)
打字稿
//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);
}
Run Code Online (Sandbox Code Playgroud)
Ama*_*pta 17
您可以使用 npm 中的 SheetJs/xlsx 包从 excel 中获取数据作为 Angular/Ionic 中的 json 对象。
只需按照以下步骤操作:
1) npm install --save xlsx
2)现在在您的组件文件中导入 xlsx
import * as XLSX from 'xlsx';
Run Code Online (Sandbox Code Playgroud)
3)现在在类型文件的输入标签的更改事件中附加此功能
onFileChange(event: any) {
/* wire up file reader */
const target: DataTransfer = <DataTransfer>(event.target);
if (target.files.length !== 1) {
throw new Error('Cannot use multiple files');
}
const reader: FileReader = new FileReader();
reader.readAsBinaryString(target.files[0]);
reader.onload = (e: any) => {
/* create workbook */
const binarystr: string = e.target.result;
const wb: XLSX.WorkBook = XLSX.read(binarystr, { type: 'binary' });
/* selected the first sheet */
const wsname: string = wb.SheetNames[0];
const ws: XLSX.WorkSheet = wb.Sheets[wsname];
/* save data */
const data = XLSX.utils.sheet_to_json(ws); // to get 2d array pass 2nd parameter as object {header: 1}
console.log(data); // Data will be logged in array format containing objects
};
}
Run Code Online (Sandbox Code Playgroud)
您还可以参考 xlsx 中的这些 utils 方法,根据需要执行不同的操作。
https://github.com/SheetJS/sheetjs#utility-functions
而且在读取操作期间,您可以在对象内部传递这些解析选项
https://github.com/SheetJS/sheetjs#parsing-options
有关任何其他信息,请参阅文档
https://github.com/SheetJS/sheetjs
希望这会帮助你或其他人。
小智 12
此软件包已弃用:https://www.npmjs.com/package/ts-xlsx
使用https://github.com/SheetJS/js-xlsx/.
TypeScript或Angular 5:https://github.com/SheetJS/js-xlsx/tree/master/demos/typescript.
同 import * as XLSX from 'xlsx';
然后使用答案中的步骤,它完美地工作.
| 归档时间: |
|
| 查看次数: |
56532 次 |
| 最近记录: |