ExcelファイルをPowerShellで色々なフォーマットに変換してみる
|
参考にしたサイト(大塚商会)
ExcelをCSVに変換しておくと
Excelから必要な個所を抜きたいとき、ExcelのままではなくCSVであった方が簡単にデータが抜ける場合があるので、なかなか重宝します。
CSV以外のファイルにも変換できる!
CSV以外にも色々変換したい、マイナーなところでmhtで!
というのもできます。
mhtであれば大塚商会さんのサイトのコードを
$savePath = $tmp -replace ".xlsx",".csv"
↓
$savePath = $tmp -replace ".xlsx",".mht"
$objworkbook.SaveAs($savepath,6)
↓
$objworkbook.SaveAs($savepath,45)
としてあげればよいです。上記大塚商会さんのリンク内のスクリプトが以下の様になります。
Copy-Item 元のファイルの場所 D:\data\userdata.xlsx #必要であれば念のためコピーしてから作業 $tmp = "D:\data\userdata.xlsx"#変換元のExcelデータ $objExcel = New-Object -ComObject Excel.Application #オブジェクトを変数に設定 $path = (resolve-path -path $tmp).path $savePath = $tmp -replace ".xlsx",".mht" #変換(コンバート)後のファイル名をMHTに設定 Remove-Item $savePath #既に同名のMHTファイルがあれば削除 Start-Sleep 1 $objworkbook=$objExcel.Workbooks.Open($tmp) #Excelデータをオブジェクト変数に設定 $objworkbook.SaveAs($savepath,45) #45はMHTファイルとして保存するコード $objworkbook.Close($false) #ファイルを閉じる
.xlsxではなくマクロファイル.xlsmでも大丈夫ですが、当然ながらマクロ機能は持ってこれないです。
savepathの部分が以下のようになります。
$savePath = $tmp -replace ".xlsm",".mht"
Excelで作ったマニュアルをmht化しておいて、Webブラウザでブックマークしておけばイントラ内でも便利で使えるかなと思ったらもしかして、mhtファイルってIEでしか開かないんですね。ChromeやFirefoxはもちろんEdgeでもだめです。
代わりにhtml(44番)で保存すればいいと思いますが、その場合は一緒にできる関連ファイルやフォルダも一緒に移動するのをお忘れなく。
変換コード一覧
XlFileFormat 列挙体 (Excel) | Microsoft Docs
より以下、抜粋
名前 | 値 | 説明 | 拡張子 |
---|---|---|---|
xlAddIn | 18 | Microsoft Excel 97-2003 アドイン | *.xla |
xlAddIn8 | 18 | Microsoft Excel 97-2003 アドイン | *.xla |
xlCSV | 6 | CSV | *.csv |
xlCSVMac | 22 | Macintosh CSV | *.csv |
xlCSVMSDOS | 24 | MSDOS CSV | *.csv |
xlCSVUTF8 | 62 | UTF8 CSV | *.csv |
xlCSVWindows | 23 | Windows CSV | *.csv |
xlCurrentPlatformText | -4158 | 現在のプラットフォームのテキスト | *.txt |
xlDBF2 | 7 | Dbase 2 形式 | *.dbf |
xlDBF3 | 8 | Dbase 3 形式 | *.dbf |
xlDBF4 | 11 | Dbase 4 形式 | *.dbf |
xlDIF | 9 | DIF ファイル | *.dif |
xlExcel12 | 50 | Excel バイナリ ブック | *.xlsb |
xlExcel2 | 16 | Excel バージョン 2.0 (1987) | *.xls |
xlExcel2FarEast | 27 | Excel バージョン 2.0 far east (1987) | *.xls |
xlExcel3 | 29 | Excel バージョン 3.0 (1990) | *.xls |
xlExcel4 | 33 | Excel バージョン 4.0 (1992) | *.xls |
xlExcel4Workbook | 35 | Excel バージョン 4.0 ブックの形式 (1992) | *.xlw |
xlExcel5 | 39 | Excel バージョン 5.0 (1994) | *.xls |
xlExcel7 | 39 | Excel 95 (バージョン 7.0) | *.xls |
xlExcel8 | 56 | Excel 97-2003 ブック | *.xls |
xlExcel9795 | 43 | Excel バージョン 95 およびバージョン 97 | *.xls |
xlHtml | 44 | HTML 形式 | .htm。.html |
xlIntlAddIn | 26 | International Add-In | ファイル拡張子なし |
xlIntlMacro | 25 | International Macro | ファイル拡張子なし |
xlOpenDocumentSpreadsheet | 60 | OpenDocument スプレッドシート | *.ods |
xlOpenXMLAddIn | 55 | XML アドインを開く | *.xlam |
xlOpenXMLStrictWorkbook | 61 (&H3D) | XML ファイルを厳密に開く | *.xlsx |
xlOpenXMLTemplate | 54 | XML テンプレートを開く | *.xltx |
xlOpenXMLTemplateMacroEnabled | 53 | マクロを有効にした XML テンプレートを開く | *.xltm |
xlOpenXMLWorkbook | 51 | XML ブックを開く | *.xlsx |
xlOpenXMLWorkbookMacroEnabled | 52 | マクロを有効にした XML ブックを開く | *.xlsm |
xlSYLK | 2 | シンボリック リンク形式 | *.slk |
xlTemplate | 17 | Excel テンプレート形式 | *.xlt |
xlTemplate8 | 17 | テンプレート 8 | *.xlt |
xlTextMac | 19 | Macintosh テキスト | *.txt |
xlTextMSDOS | 21 | MSDOS テキスト | *.txt |
xlTextPrinter | 36 | プリンター テキスト | *.prn |
xlTextWindows | 20 | Windows テキスト | *.txt |
xlUnicodeText | 42 | Unicode テキスト | ファイル拡張子なし。*.txt |
xlWebArchive | 45 | Web アーカイブ | .mht。.mhtml |
xlWJ2WD1 | 14 | Japanese 1-2-3 | *.wj2 |
xlWJ3 | 40 | Japanese 1-2-3 | *.wj3 |
xlWJ3FJ3 | 41 | Japanese 1-2-3 形式 | *.wj3 |
xlWK1 | 5 | Lotus 1-2-3 形式 | *.wk1 |
xlWK1ALL | 31 | Lotus 1-2-3 形式 | *.wk1 |
xlWK1FMT | 30 | Lotus 1-2-3 形式 | *.wk1 |
xlWK3 | 15 | Lotus 1-2-3 形式 | WK3 |
xlWK3FM3 | 32 | Lotus 1-2-3 形式 | WK3 |
xlWK4 | 38 | Lotus 1-2-3 形式 | *.wk4 |
xlWKS | 4 | Lotus 1-2-3 形式 | *.wks |
xlWorkbookDefault | 51 | ブックの既定 | *.xlsx |
xlWorkbookNormal | -4143 | ブックの標準 | *.xls |
xlWorks2FarEast | 28 | Microsoft Works 2.0 far east 形式 | *.wks |
xlWQ1 | 34 | Quattro Pro 形式 | *.wq1 |
xlXMLSpreadsheet | 46 | XML スプレッドシート | *.xml |