CSVファイルで各カラムがダブルクォーテーションで括られていないことがたまにあります。
そんな時、皆さんどうしていますか?
私はテキストエディタでカンマ「,」を「”,”」に置換し、行の先頭と末尾にダブルクォーテーションを付ける・・・ということをいちいちやっていました。
しかし、PowerShellのコマンドを使えば、一発で簡単にダブルクォーテーションを付けることが出来るようなのです。
コマンド例はこちら
Import-Csv -Path "C:\source.csv" -Encoding Default | Export-csv -Path "C:\destination.csv" -Encoding Default -NoTypeInformation
インポートしたCSVの内容をパイプでエクスポート側に渡す、という動作になります。
オプションについて
Encoding |
既定値(Default)はutf8NoBOM
ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode,
UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
NoTypeInformation |
TYPE情報ヘッダーをエクスポートしない |
変換元のCSV
ColumnA,ColumnB,ColumnC
1,Ipsum,Sed
2,Magna,Est
3,Clita,Stet
変換後はこのようになります。
"ColumnA","ColumnB","ColumnC"
"1","Ipsum","Sed"
"2","Magna","Est"
"3","Clita","Stet"
但し、数値のカラムに対してもダブルクォーテーションが付けられるので、そこは我慢するしかないようです。