[FAQ CENTER トップ]
[Powershell FAQ トップへ]



【Powershell】CSV を Excel 形式や HTML 形式に変換する



更新日:2018/08/12


CSV を Excel 形式や HTML(Hyper Text Markup Language) 形式に変換するサンプルコードです。Excel の機能を使用します。

CSVファイルを EXCEL形式はHTML形式に変換するサンプルプログラムです。xls形式(Excel2003)、xlsx形式(Excel2007以後)、html に変換しています。
Excelはファイルを保存する場合に様々な形式で保存することが可能です。その機能を使用しています。
マクロ有効化ファイル(xlsm)への変換はパラメータが見つかりませんでした。


#CSV を読み紺で Excel で出力する。
#既にファイルがある場合は強制的に上書きされる点に注意してください。

#参考:XlFileFormat 列挙型
#https://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.excel.xlfileformat(v=office.11).aspx

$excel = New-Object -ComObject Excel.Application
$book = $excel.Workbooks.Open("c:\temp\test.csv")

#以下により既にExcelファイルが存在する場合でも警告なしに上書きを行います。警告が欲しい場合は TRUE に設定します。
$excel.DisplayAlerts = $false

#Excel 2003形式の xls で保存する場合
$book.SaveAs("c:\temp\test.xls", [Microsoft.Office.Interop.Excel.XlFileFormat]::xlWorkbookNormal)

#Excel 2007以後の形式の xlsx で保存する場合
$book.SaveAs("c:\temp\test.xlsx", [Microsoft.Office.Interop.Excel.XlFileFormat]::xlExcel5)

#HTML 形式で保存する場合
$book.SaveAs("c:\temp\test.html", [Microsoft.Office.Interop.Excel.XlFileFormat]::xlHtml)

#Lotus 1-2-3 形式の wk4 で保存する場合
#サポートされていないのか、Lotus 1-2-3 形式では例外が発生して失敗する。確かにメニューの選択肢にもない。
#$book.SaveAs("c:\temp\test.wk4", [Microsoft.Office.Interop.Excel.XlFileFormat]::xlWK4)

$excel.Quit()

#プロセスを終了する
#test.xls などを開こうとすると"読み取り専用です"と表示される場合あり。これは"wb.Quit()"だけでは Excelのプロセスが終了しないため。
#よって以下の2行が必要となる。

[System.Runtime.Interopservices.Marshal]::ReleaseComObject($book)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)









[Powershell FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018