想要使用papa-parse-angular2将CSV转换为JSON。没有找到任何例子,所以我这样做。
app.module.ts
Toast.makeText(context, "your message", Toast.LENGTH_LONG).show();
xx.component.ts
import {CSVService} from 'papa-parse-angular2';
@NgModule({
providers: [
CSVService, ...
constructor( private csvService: CSVService, ...
private x1() {
let file = ...;
this.csvService.parse(file, {
complete: function(results) {
// take results.data
}
});
不知道如何修复。或其他libs将CSV转换为角度为4的JSON?感谢任何帮助。
答案 0 :(得分:6)
您可以使用ngx-papaparse。
首先安装库:
对于Angular 6(docs):
npm install ngx-papaparse --save
还有Angular 2/4和Angular 5的版本。
然后将其导入您的模块(不一定是您的AppModule):
import { PapaParseModule } from 'ngx-papaparse';
@NgModule({
...
imports: [
...
PapaParseModule
]
})
解析CSV:
import { Component } from '@angular/core';
import { Papa } from 'ngx-papaparse';
@Component({
...
})
export class AppComponent {
constructor(private papa: Papa) {
let csvData = '"Hello","World!"';
this.papa.parse(csvData,{
complete: (result) => {
console.log('Parsed: ', result);
}
});
}
}
您还可以解析文件而不是字符串。只需将csvData
替换为文件。
免责声明:我创建了这个库。
答案 1 :(得分:4)
您只需使用papaparser。
import * as Papa from 'papaparse/papaparse.min.js';
使用
onUpload(file: File) {
Papa.parse(file, {
complete: function(results) {
console.log("Finished:", results.data);
}
});
}
然而,一个缺点是你不会得到papaparse的任何类型定义
答案 2 :(得分:1)
安装papaparse和@types/papaparse。这将为IDE智能感知启用类型定义。
然后,您可以导入整个papaparse模块
import * as Papa from 'papaparse'
或将所需的进口指定为
import { parse } from 'papaparse'
与第三方包装器相比,建议使用此方法,因为它们的更新频率不高或在其后面的社区工作有限。
答案 3 :(得分:0)
如下所述导入PapaParser:
import * as Papa from 'papaparse/papaparse.min.js';
然后使用:
private x1() {
let file = ...;
Papa.parse(file, {
header: true,
skipEmptyLines: true,
complete: (results) => {
let parsedData = results.data;
}
})