我正在用 angular2 编写一个应用程序,它读取一个 csv 文件,只需在 html 中输入:
<input type='file' name='userFile' id='file' >
我可以访问 component.ts 中的文件:
ngOnInit() {
var input = (<HTMLInputElement>document.getElementById("file"));
input.addEventListener("change", function(event) {
var files = input.files;
var len = files.length;
if (len) {
console.log("Filename: " + files[0].name);
console.log("Type: " + files[0].type);
console.log("Size: " + files[0].size + " bytes");
}
}, false);
}
如何逐个单元地读取使用 typescript、JavaScript 或 jQuery 上传的 csv 文件? (这是最好的方法)。
最佳答案
这是一个示例实现 Angular 方式( Angular 版本 2+):
@Component({
selector: 'app-my-file',
template: `
<div class="form-group">
<input type="file" (change)="onFileSelect($event.target)" name="myfile">
</div>
`,
styles: [``]
})
export class YourComponent implements OnInit {
csvContent: string;
constructor(){}
ngOnInit(){
}
onFileLoad(fileLoadedEvent) {
const textFromFileLoaded = fileLoadedEvent.target.result;
this.csvContent = textFromFileLoaded;
// alert(this.csvContent);
}
onFileSelect(input: HTMLInputElement) {
const files = input.files;
var content = this.csvContent;
if (files && files.length) {
/*
console.log("Filename: " + files[0].name);
console.log("Type: " + files[0].type);
console.log("Size: " + files[0].size + " bytes");
*/
const fileToRead = files[0];
const fileReader = new FileReader();
fileReader.onload = this.onFileLoad;
fileReader.readAsText(fileToLoad, "UTF-8");
}
}
}
关于javascript - 如何逐行读取angular2上的csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46744611/