PC で何かの一覧表を作るとしたら、Excel を使って .xlsx 形式ないし .xls 形式で保存するケースが多いと思います。
しかし、その一覧表を利用する作業をスクリプトで自動化するならば、CSV 形式の方が扱いやすいのではないでしょうか。
Excel でファイルを開いて「名前を付けて保存」をすれば、CSV 形式だけでなく様々なファイル形式で保存できます。
が、敢えて PowerShell で変換用スクリプトを書いてみました。
|
|
「特定のシートをCSVに変換」と、「ブック全体を PDF に変換」の2種類です。
そのまま PowerShell に貼り付けるのではなく、.ps1 形式で保存してから実行してください。
(Windows 7 Enterprise RTM に、Office 2013 Professional Plus をインストールした環境で動作確認しました。)
//// <以下、特定のシートをCSVに変換するスクリプト> //////////
$F = Read-Host "対象 Excel ファイルの完全なパス"
$S = Read-Host "対象シート名"
$C = Read-Host "変換後 CSV ファイルの完全なパス"
$E = New-Object -ComObject Excel.Application
$E.Workbooks.open("$F")
$E.DisplayAlerts = $false
$W = $E.Worksheets.Item("$S")
$W.SaveAs("$C",6)
$E.Workbooks.Close()
$E.Quit()
//// <以上> ////////////////////////////////////////////////////
//// <以下、ブック全体を PDF に変換するスクリプト> ///////////
$F = Read-Host "対象 Excel ファイルの完全なパス"
$P = Read-Host "変換後 PDF ファイルの完全なパス"
$E = New-Object -ComObject Excel.Application
$B = $E.workbooks.open("$F")
$B.ExportAsFixedFormat(0,"$P")
$E.Workbooks.Close()
$E.Quit()
//// <以上> ////////////////////////////////////////////////////
さらに Get-ChildItem コマンドレットや While 構文 を組み合わせれば、「特定ディレクトリ配下の Excel ファイルを一括変換」ということもできそうです。
ファイルの数が多く、一つ一つ開いて「名前を付けて保存」するのが面倒な場合に便利だと思います。