$fn.csvToObject(buf, options)
指定したCSVファイルデータをオブジェクト形式に変換します。
引数
buf
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| buf | Buffer | はい | CSVファイルのBufferデータ |
options
v4.2.0で追加された引数です。
| プロパティ名 | 型 | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
| columns | string[] | いいえ | 出力オブジェクトのプロパティ名を列順に指定します。配列内の要素に false / null / undefined が指定された列は、出力オブジェクトに含まれません。 | |
| fromLine | number | いいえ | 1 | CSVファイルの何行目からをレコードとして扱うかを指定します。最初の行を1として扱います。 |
| relaxColumnCount | boolean | いいえ | false | trueの場合、CSVレコードの列数が期待列数(columnsの要素数)と一致しなくてもエラーになりません。列数が少ない場合は対応するプロパティを出力せず、列数が多い場合は余分な値を破棄します。 |
| relaxColumnCountLess | boolean | いいえ | false | trueの場合、CSVレコードの列数が期待列数より少ない場合でもエラーになりません。列数が多い場合は例外をスローします。 |
| relaxColumnCountMore | boolean | いいえ | false | trueの場合、CSVレコードの列数が期待列数より多い場合でもエラーになりません。列数が少ない場合は例外をスローします。 |
| skipEmptyLines | boolean | いいえ | true | trueの場合、空行をスキップします。falseの場合、空行は第一プロパティが空文字のオブジェクトとして処理されます。 |
| encoding | string | いいえ | utf-8 | CSVファイルの文字エンコーディングを指定します。utf-8 および shift_jis をサポートします。 |
CSVファイルの仕様
| ヘッダ行 | 必須 オブジェクトのプロパティ名になります。( columns指定がある場合は、columnsの内容がプロパティ名になります)例)“email”, “name” |
| ヘッダ名制約 | ヘッダー名をプロパティ名として使用する場合、数字開始のヘッダー名は不可 |
| 区切り文字 | ,(カンマ) |
| フィールド | 値にダブルクォーテーションを含む場合、別のダブルクォーテーションでエスケープする必要があります。(RFC 4180準拠) 例) "aaa","b""bb","ccc" |
| 改行コード | CRLF または LF |
| 文字コード | UTF-8、Shift_JIS |
| BOM | BOMなし または BOM付 |
戻り値
| 型 | 説明 |
|---|---|
| array of object | CSVファイルデータをオブジェクト形式に変換して返却します |
サンプル
ヘッダー文字列をそのままプロパティ名として利用する例
const files = await $fn.getUploadFiles();const csv_buf = files[0].data;const obj = $fn.csvToObject(csv_buf);columnsとfromLineを使って別途プロパティ名を指定する例
const obj = $fn.csvToObject(csv_buf, { columns: ["id", "name", "amount"], fromLine: 2});