const fs = require("fs") const { parse } = require("csv-parse/sync") const stringifySync = require("csv-stringify/sync") // 入力CSV // Header 1,Header 2,Header 3 // Row 1 - Col 1,Row 1 - Col 2,Row 1 - Col 3 // Row 2 - Col 1,Row 2 - Col 2,Row 2 - Col 3 // Row 3 -Col 1,Row 3 - Col 2,"\"hello world!\"" //-------- csv read let data = fs.readFileSync("data.csv") let rows = parse(data, { escape: "\\" }) console.log(">> all check") console.log(rows) console.log(">> one check") rows.forEach((row) => { row.forEach((column) => { console.log(column) }) }) // >> all check // [ // [ 'Header 1', 'Header 2', 'Header 3' ], // [ 'Row 1 - Col 1', 'Row 1 - Col 2', 'Row 1 - Col 3' ], // [ 'Row 2 - Col 1', 'Row 2 - Col 2', 'Row 2 - Col 3' ], // [ 'Row 3 -Col 1', 'Row 3 - Col 2', '"hello world!"' ] // ] // >> one check // Header 1 // Header 2 // Header 3 // Row 1 - Col 1 // Row 1 - Col 2 // Row 1 - Col 3 // Row 2 - Col 1 // Row 2 - Col 2 // Row 2 - Col 3 // Row 3 -Col 1 // Row 3 - Col 2 // "hello world!" //-------- csv write let oututContent = "" rows.forEach((row) => { oututContent += row.join(",") + "\r\n" }) fs.writeFileSync("output.data.csv", oututContent) // >> 出力ファイル // Header 1,Header 2,Header 3 // Row 1 - Col 1,Row 1 - Col 2,Row 1 - Col 3 // Row 2 - Col 1,Row 2 - Col 2,Row 2 - Col 3 // Row 3 -Col 1,Row 3 - Col 2,"hello world!"