首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在角4中导入json2csv模块

在角4中导入json2csv模块
EN

Stack Overflow用户
提问于 2017-06-07 04:48:35
回答 4查看 6.1K关注 0票数 5

我试图在我的应用程序中使用这个库将JSON数据转换为CSV文件格式。我在我的项目中安装了库,因为它提到了https://www.npmjs.com/package/json2csv

npm install json2csv --save

我还在我的node_module文件夹中看到了模块。然后,在我的组件类中,我会这样称呼它

import { json2csv } from 'json2csv';

但是我得到了这个错误

ts模块'"c:/dev/angularworkspace/tntzweb/node_modules/json2csv/index"‘没有导出成员json2csv。

有人能帮帮我吗!!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-06-07 05:06:14

将导入更改为:

代码语言:javascript
复制
import * as json2csv  from 'json2csv';

然后以下列方式实施:

代码语言:javascript
复制
  let fields = ['field1', 'field2', 'field3'];
  let result = json2csv({ data:[{ field1: 'a', field2: 'b', field3: 'c' }], fields: fields });
  console.log(result);
票数 6
EN

Stack Overflow用户

发布于 2021-07-30 17:35:46

其他的答案现在已经过时。对于json2csv版本5,首先:

代码语言:javascript
复制
npm install --save json2csv @types/json2csv

然后在你的角度组件/服务/等的顶部:

代码语言:javascript
复制
import { parse } from 'json2csv';

然后在您的方法中生成csv:

代码语言:javascript
复制
const csv = parse(json);

当然,您可以传递给parse()和json2csv的各种选项都公开了可以导入和使用的其他类和函数。在来自@type/json2csv的测试中有一些有用的例子。

票数 6
EN

Stack Overflow用户

发布于 2018-09-19 07:47:44

下面是一个完整的CSV下载实现:

代码语言:javascript
复制
<a [download]="csvFileName" [href]="getCSVDownloadLink()">CSV export</a>
代码语言:javascript
复制
import { Component } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import * as json2csv from 'json2csv';

@Component({
  selector: 'csv-download',
  templateUrl: './csv-download.component.html',
  styleUrls: ['./csv-download.component.scss']
})
export class CsvDownloadComponent {

  public csvFileName = `test.csv`;

  private SOME_DATA: any[] = [{id: 1, name: 'Peter'}, {id: 2, name: 'Sarah'}];

  constructor(
    private domSanitizer: DomSanitizer,
  ) { }

  getCSVDownloadLink() {

    return this.generateCSVDownloadLink({
      filename: this.csvFileName,
      data: this.SOME_DATA,
      columns: [
        'id',
        'name',
      ],
    });
  }
  // you can move this method to a service
  public generateCSVDownloadLink(options: { filename: string, data: any[], columns: string[] }): SafeUrl {
    const fields = options.columns;
    const opts = { fields, output: options.filename };
    const csv = json2csv.parse(options.data, opts);

    return this.domSanitizer.bypassSecurityTrustUrl('data:text/csv,' + encodeURIComponent(csv));
  }


}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44403727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档