Excelで作ったCSVは、各項目が二重引用符(")で囲われません。
たまーに、二重引用符で囲われたCSVが必要になることがあるため、Powershellで対処してみました。
ヒントは自分の投稿でした
カンマで分割して、前後を「”」で囲って...みたいなことをせずにできないものか、と考えたときに、
そういえばPowershellでExport-CSVというのを使うと「”」で囲われたっけな...というのを思い出しました。
コードです
param( [string]$fileName # 処理対象ファイル名(フルパス) ) # エラーがあった時点で処理終了 $ErrorActionPreference = "stop" $parentDir = Split-Path -Parent $fileName $fileNameWithoutExtension = [System.IO.Path]::GetFileNameWithoutExtension($fileName); $outputFileName = Join-Path $parentDir $fileNameWithoutExtension"_dquote.csv" Import-Csv -Encoding Default $fileName |` Export-Csv -Encoding Default -NoTypeInformation $outputFileName
実行例
PS C:\Users\hoge\Documents\Powershells> .\Excelで作成したCSVに二重引用符をつける.ps1 C:\Users\hoge\Desktop\csv1.csv
スクリーンショット
ExcelでCSVをつくる
エディタで開くと...各項目が二重引用符で囲われていない
自分で囲う
その後、Excelで編集すると...
やっぱり囲われない...
上記スクリプトを実行すると、二重引用符で囲われる