ExcelのSheetをPDFに変換するpowershellのスクリプトを試した
昔のスクリプトを取り出して試してみた。
対象のExcelファイルのシートをかたっぱしからPDFに変換するというシナリオで、PDFのファイル名は単純にファイル名に連番を付したものとした。
PDFへの変換にはWorkbook.ExportAsFixedFormat メソッド (Excel)を使用した。
Workbook.ExportAsFixedFormat メソッド (Excel) | Microsoft Docs
以下がコード。
# # export Excel sheet # $xlFixedFormat = "Microsoft.Office.Interop.Excel.xlFixedFormatType" -as [type] $excel = new-object -comobject excel.application #$excel.visible = $True $list = get-childitem . -include *.xlsx -recurse $list | % { $_.FullName $excelbook = $excel.workbooks.open($_.FullName) for ( $i=0; $i -lt $excelbook.Sheets.Count; $i++ ) { $n = $i + 1 $excelbook.worksheets.item($n).Name $excelbook.worksheets.item($n).Select() $filename = $_.DirectoryName + "\" + $_.basename +'_{0:d2}' -f $n + ".pdf" $filename $excelbook.worksheets.item($n).ExportAsFixedFormat($xlFixedFormat::xlTypePDF, $filename) } } $excel.quit()
ExportAsFixedFormat()をprintOut()にすると印刷できるはずである。
「はず」というのは確認できる環境はなく、確かではない。deprecatedとなっているかもしれない。もともとは印刷のためのスクリプトであったが、さすがにDXの時代にもう紙への印刷はないだろう・・・。
$excelbook.worksheets.item($n).printOut()
ちなみにWindows10 HOME上でMicrosoft Office Home and Business2019のExcelを使って試した。
了