【Python】ExcelをPDF保存する win32com.client使用

Python_エクセルをPDF保存_アイキャッチ Python

Pythonで、エクセルをPDF保存するコードをご紹介します。

ぜひ、お試しください。

ExcelをPDF保存(特定シート)

以下のコードを実行すると、特定のシートをPDF保存します。


import win32com.client

#エクセルファイルを開く
excel = win32com.client.Dispatch("Excel.Application")
file = excel.Workbooks.Open('C:/Users/xxx/Desktop/test/test.xlsx')

#対象シートを指定
file.WorkSheets("Sheet1").Activate()

#PDF変換
file.ActiveSheet.ExportAsFixedFormat(0, 'C:/Users/xxx/Desktop/test/test.pdf')

#エクセルを閉じる
file.Close()
excel.Quit()

 

コード実行後

エクセルファイルの特定シートをPDFに変換します。

エクセルマクロ:特定シートをPDF保存
 
 

ExcelをPDF保存(特定シート)

以下のコードを実行すると、特定のシートをPDF保存します。


import win32com.client

#エクセルファイルを開く
excel = win32com.client.Dispatch("Excel.Application")
file = excel.Workbooks.Open('C:/Users/xxx/Desktop/test/test.xlsx')

#全てのシートをループ
for sh in file.Sheets:

    if sh.Name == 'Sheet2':

        #ファイルを選択
        excel.Worksheets(sh.Name).Activate()

        #PDF変換
        file.ActiveSheet.ExportAsFixedFormat(0, 'C:/Users/xxx/Desktop/test/' + sh.Name + '.pdf')

        break

#エクセルを閉じる
file.Close()
excel.Quit()

 

コード実行後

ファイル内のすべてのシート名をループして、指定シートがあった場合にPDFを作成します。

この場合は「Sheet2」シートをPDFで保存します。
作成されるPDFは、「Sheet2.pdf」というファイル名で保存されます。


 
 

ExcelをPDF保存(複数シート)

以下のコードを実行すると、複数シートをPDF保存します。


import win32com.client

#エクセルファイルを開く
excel = win32com.client.Dispatch("Excel.Application")
file = excel.Workbooks.Open('C:/Users/xxx/Desktop/test/test.xlsx')

#対象シートを指定
file.Worksheets(["Sheet1", "Sheet2"]).Select()

#PDF変換
file.ActiveSheet.ExportAsFixedFormat(0, 'C:/Users/xxx/Desktop/test/test.pdf')

#エクセルを閉じる
file.Close()
excel.Quit()

 

コード実行後

エクセルファイルの複数シートを、1つのPDFファイルにして保存します。


 
 

ExcelをPDF保存(全てのシート)

以下のコードを実行すると、全てのシートをPDF保存します。


import win32com.client

#エクセルファイルを開く
excel = win32com.client.Dispatch("Excel.Application")
file = excel.Workbooks.Open('C:/Users/xxx/Desktop/test/test.xlsx')

#全てのシートをループ
for sh in file.Sheets:

    #ファイルを選択
    excel.Worksheets(sh.Name).Activate()
    ws = excel.ActiveSheet

    #シート名を取得
    name = sh.Name

    #PDF変換
    file.ActiveSheet.ExportAsFixedFormat(0, 'C:/Users/xxx/Desktop/test/' + name + '.pdf')

#エクセルを閉じる
file.Close()
excel.Quit()

 

コード実行後

エクセルファイルの全シートを一括でPDFに変換します。


 
 

動作環境
Python 3.7.4

この記事がお役に立ちますと幸いです。

 
・【Python】エクセルを自動処理する方法まとめ
 

【Python】エクセル処理を自動化:超便利55選
...

 

「PythonでExcel、メール、Webを自動化する本」

準備に時間をかけず、すぐ始められます
実践的な例題で、実務で本当に使えるプログラムを紹介
自分の仕事を効率化したい方の大きな武器になるオススメの1冊です!