$fn.csvToObject(csv)
指定したCSVファイルデータをオブジェクト形式に変換します。
引数
名前 | 型 | 説明 |
---|---|---|
csv | Buffer | CSVファイルのBufferオブジェクト |
CSVファイルの仕様
ヘッダ行 | 必須 オブジェクトのプロパティ名になります。 半角英数字のみ可能です。 (数字開始は不可) 例)“email”, “name” |
区切り文字 | ,(カンマ) |
フィールド | 値にダブルクォーテーション、カンマ、改行を含む場合は、必ず囲ってください。 |
改行コード | CRLF または LF |
文字コード | UTF-8 |
BOM | BOMなし または BOM付 |
戻り値
型 | 説明 |
---|---|
array of object | CSVファイルデータをオブジェクト形式に変換して返却します |
サンプル
try { /* CSVの内容 * ------------------------------------------------------------------- * Id,Title,Description,Progress,Category,CreatedBy,CreatedAt * 00001,タイトル1,"説明1, サンプル1",100,CATEGORY1,User1,2023-08-01 * 00002,タイトル2,"説明2, サンプル2",80,CATEGORY2,User2,2023-08-10 * 00003,タイトル3,"説明3, サンプル3",20,CATEGORY3,User3,2023-08-12 * ------------------------------------------------------------------- */ const file = await $fn.getFile("/path/to/projects.csv"); const buffer = file.data; // CSVファイルをパースし、オブジェクトへ変換 const projects = $fn.csvToObject(buffer); // 1件ずつデータを登録 for (const project of projects) { const { Id, Title, Description, Category, Progress, CreatedBy, CreatedAt } = project; if (!Id) { throw new Error("IDが入力されていません。"); } const progress = Number(Progress); if (isNaN(progress)) { throw new Error("進捗率は数値で入力して下さい。"); } /* SQL 関数の内容 * ------------------------------------------------------------------------------------ * insert into Project VALUES (${param.id},${param.title},${param.description}, * ${param.progress},${param.category},${param.createdBy},${param.createdAt}); * ------------------------------------------------------------------------------------ */ // SQL関数でテーブルにデータを登録 await insertToProjectTable({ id: Id, title: Title, description: Description, progress, category: Category, createdBy: CreatedBy, createdAt: CreatedAt }); }} catch (e) { console.error(e);}