0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

json から csv 形式へ変換できるライブラリ csv-stringify のご紹介です!

使い方

1. 定義

使いたいファイルのインポート箇所に↓を設定します。

const stringify: any = require('csv-stringify/lib/sync');

2. ヘッダー情報の設定

以下のように変数名とヘッダー名を紐づけます。

const headerRecord = {
    id: 'ID',
    date: '日付',
    userName: 'ユーザー名',
    shopName: '会員名',
    productName: '商品名',
    mailAddress: 'メールアドレス'
};

3. 変換したいオブジェクトを用意

targetObject の中身は以下のようなオブジェクトが格納されているとします。

const targetObject = [
  {
    id: 1,
    date: '2022/11/01',
    userName: 'テスト一郎',
    shopName: 'テスト商店',
    productName: '商品001<br>商品002<br>商品003<br>商品004<br>商品005',
    mailAddress: 'test01@sample.com',
  },
  {
    id: 2,
    date: '2022/11/01',
    userName: 'テスト二郎',
    shopName: 'テスト商店',
    productName: '商品011<br>商品012<br>商品013<br>商品014<br>商品015',
    mailAddress: 'test02@sample.com'
  },
  {
    id: 3,
    date: '2022/11/01',
    userName: 'テスト三郎',
    shopName: 'テスト商店',
    productName: '商品021<br>商品022<br>商品023<br>商品024<br>商品025',
    mailAddress: 'test03@sample.com',
    prcDate: '2022/11/24 11:22:33.444'
  },
  {
    id: 4,
    date: '2022/11/01',
    userName: 'テスト四郎',
    shopName: 'テスト商店',
    productName: '商品031<br>商品032<br>商品033<br>商品034<br>商品035',
    mailAddress: 'test04@sample.com'
  },
  {
    id: 5,
    date: '2022/11/01',
    userName: 'テスト五郎',
    shopName: 'テスト商店',
    productName: '商品041',
    mailAddress: 'test05@sample.com'
  },
  {
    id: 6,
    date: '2022/11/01',
    userName: 'テスト六郎',
    shopName: 'テスト商店',
    productName: '商品051',
    mailAddress: 'test06@sample.com'
  },
  {
    id: 7,
    date: '2022/11/01',
    userName: 'テスト七郎',
    shopName: 'テスト商店',
    productName: '商品061',
    mailAddress: 'test07@sample.com'
  },
  {
    id: 8,
    date: '2022/11/01',
    userName: 'テスト八郎',
    shopName: 'テスト商店',
    productName: '商品071',
    mailAddress: 'test08@sample.com'
  }
]

4. csv への変換処理を記載

あとは以下のように stringify で噛ませることで、、、

const csv: string = stringify(targetObject, {
    header: true,
    columns: headerRecord,
    quoted: true,
    record_delimiter: 'windows'
});

csv の変数の中には csv 形式になった文字列が格納されます!!

"ID","日付","ユーザー","店名","商品名","メールアドレス"
"1","2022/11/01","テスト一郎","テスト商店","商品001<br>商品002<br>商品003<br>商品004<br>商品005","test01@sample.com"
"2","2022/11/01","テスト二郎","テスト商店","商品011<br>商品012<br>商品013<br>商品014<br>商品015","test02@sample.com"
"3","2022/11/01","テスト三郎","テスト商店","商品021<br>商品022<br>商品023<br>商品024<br>商品025","test03@sample.com"
"4","2022/11/01","テスト四郎","テスト商店","商品031<br>商品032<br>商品033<br>商品034<br>商品035","test04@sample.com"
"5","2022/11/01","テスト五郎","テスト商店","商品041","test05@sample.com"
"6","2022/11/01","テスト六郎","テスト商店","商品051","test06@sample.com"
"7","2022/11/01","テスト七郎","テスト商店","商品061","test07@sample.com"
"8","2022/11/01","テスト八郎","テスト商店","商品071","test08@sample.com"

さいごに

オプションを変更することで、ヘッダーの有無や、クオーテーションをつけるかどうかの切り替えも可能です!
github にサンプルがたくさんあるので、形式を変更したい場合は確認してみると良いと思います!

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?