PythonとOpenpyxlを使用してExcelファイルをPDFに変換する方法について説明します。
必要なライブラリ
このプログラムを実行するには、以下のPythonライブラリが必要です。
- openpyxl
- win32com.client
コード
以下に、ExcelファイルをPDFに変換するPythonコードを示します。
from openpyxl import load_workbook
import win32com.client
#pdfファイルにしたいエクセルファイルを開く
file_name="C:\\\\○○○\\\\○○○\\\\○○○.xlsx"
wb=load_workbook(file_name)
#エクセルファイルの読み込み
ws_list = [ws.title for ws in wb.worksheets]
#各シートをpdfファイルにするために、リストを作る。
#シート分だけ印刷設定を変更する
for i, ws in enumerate(wb.worksheets):
ws.print_title_rows='1:2'
ws.oddHeader.center.text=str(ws_list[i])
wps=ws.page_setup
wps.fitToWidth=1
wps.fitToHeight=0
ws.sheet_properties.pageSetUpPr.fitToPage = True
wb.save(file_name)
wb.close()
#ここからpdf化
excel = win32com.client.Dispatch("Excel.Application")
file = excel.Workbooks.Open(file_name)
for j, ww in enumerate(ws_list):
file.WorkSheets(j+1).Select()
file.ActiveSheet.ExportAsFixedFormat(0,"C:\\\\○○○\\\\○○○\\\\○○○_"+ww+".pdf")
file.Close()
注意点
プログラムを作っているとき、PermissionError: [Errno 13] Permission denied:
というエラーが出る時があります。エクセルが開かれていると思われる状態であるにもかかわらず、実際には開いていない場合があります。このような場合、次の手順を試してみてください。
- タスクマネージャーを開きます(Ctrl+Alt+Deleteを押します)。
- プロセスタブを選択し、エクセルのプロセスが実行中かどうかを確認します。
- エクセルのプロセスを見つけたら、それを選択し、Deleteキーを押してプロセスを終了させてください。
これにより、不要にエクセルが起動している場合、それを終了させることができます。