\

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:というエラーが出る時があります。エクセルが開かれていると思われる状態であるにもかかわらず、実際には開いていない場合があります。このような場合、次の手順を試してみてください。

  1. タスクマネージャーを開きます(Ctrl+Alt+Deleteを押します)。
  2. プロセスタブを選択し、エクセルのプロセスが実行中かどうかを確認します。
  3. エクセルのプロセスを見つけたら、それを選択し、Deleteキーを押してプロセスを終了させてください。

これにより、不要にエクセルが起動している場合、それを終了させることができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です