エクセルCSVファイルの読み込みは、今までSheetJSを使っていました。しても文字化けしてうまく読み込めないCSVファイルがあったので、他のライブラリを試してみることにしました。npmで「csv」で検索すると一番上に出てくる、その名も「csv」というライブラリがあったので、それを使ってみるとうまくいきました。「csv」は結構便利な機能があって、今後CSVファイルの読み込みは「csv」を使っていこうと思うので、ざっくり使い方をメモしておきます。CSVファイルの読み込みはライブラリを使った方がいいCSVはフォーマットが分かりやすいので、自分で読み込みを書けなくもないです。Excelではよく、セルの中に「改行・カンマ」を含むデータを入れたりするのですが、そういったExcelファイルから出力したCSVファイルを読み込もうとすると、処理が面倒になります。「csv」を使えば、「改行・カンマ」を含んだCSVもうまく読み込んでくれるし、空行を読み飛ばしたり、自動でJSONデータに変換してくれるし、使い方も簡単だし、積極的に使った方が楽かなぁと思います。インストールCSV書き込み機能もあるのですが、読み込みしかしないなら「csv-parse」だけをインストールすればOKです。引数にCSVデータ(文字列)を直接渡して使います。ファイルからの読み込み機能は無いので、fsでファイルを読み込んでデータを渡します。]これだけです!細かい設定は、2番目の引数に記載していきます。後述しますが、ExcelからUTF-8でCSV出力した場合はbomの設定がいります。設定よく使いそうな設定をまとめておきます。bomExcelからUTF-8でCSV出力すると、BOM付きUTF-8になります。BOM付きUTF-8を読み込む場合、bomをtrueにします。デフォルトはfalseなので、通常のUTF-8のCSVを読み込む場合はbomの設定は不要です。ちなみに、SheetJSで文字化けしたのは、BOM付きUTF-8が原因でした。columns通常、データは配列で取得されるのですが、columnsをtrueにすると、CSVの1行目をヘッダーとみなして、JSONオブジェクトにして取得してくれます。]JSONのキー名を、ヘッダーと違うものにしたい時は、キーを配列で指定して明示的に変えることもできます。その場合、ヘッダーもデータとして扱われてしまうので、後述するfromで、ヘッダーを読み飛ばすようにする必要があります。]fromデータを取得する時、ヘッダー行を飛ばしたい時があります。fromでデータが始まる行を指定できるので、ヘッダー行を飛ばすことができます。行は「0」始まりではなく、「1」始まりなので注意が必要です。先頭ヘッダーを読み飛ばすにはfromを「2」にします。]skip_lines_with_empty_valuesskip_lines_with_empty_valuesをtrueにすると、データの無い行は読み飛ばしてくれます。]commentcommentで指定した文字列で始まる行は、コメント行として読み飛ばしてくれます。]relax_column_countCSVフォーマットは、全ての行の列数は同じである必要があります。プログラムや手編集で作成したCSVによっては、列数がまちまちだったりします。「csv」で列数が異なるCSVを読み込むと、CSV_INCONSISTENT_RECORD_LENGTHというエラーになるのですが、relax_column_countをtrueにすると、列数が可変になるのを容認します。trim各カラムのデータは文字列として取得されます。文字列の前後に空白文字があった場合、それら空白文字も含めてデータとして取得されます。trimをtrueにすると、事前に前後の空白を取り除いたものをデータとして取得してくれます。文字列データとして意図的に空白が入っている場合は取り除かれません。感想などライブラリは都度使い方を覚えるのが面倒なのですが、思った以上に簡単でよかった。CLIをインストールしました。1引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。