見出し画像

【Python】【Colab】Excel作成+PDF化

Google Colaboratory を使用してExcelの作成→PDF化を行いたいと思います。
#PythonでExcelいじってPDFにしたい!って人向けです。

Google Colaboratory って何?

簡単に説明するとGoogleアカウントを持っている人であれば無料かつ構築不要で使用できるPythonの開発環境です。

まだ使用したことない人はGoogleで”Google Colaboratory”と検索すると下記のサイトが表示され簡単に始めることができます。
新しくノートを作成したい場合は「ノートブックを新規作成」ボタンをクリックで作成できます。

今回使用するライブラリとツール類

・openpyxl
 Excelファイルを読み書きするためのPythonライブラリ

・IPAexfont00301
 フォントデータ
 サイト:https://moji.or.jp/ipafont/ipaex00301/

・serverless-libreoffice
 libreofficeのサーバレス版

手順

1.Excel作成のため「openpyxl」をColab環境にインストールします

!pip install openpyxl

2.インストールした「openpyxl」を使用してExcelを作成する。

import openpyxl

#Excelファイルの新規作成
wb = openpyxl.Workbook()

#先頭のシート
ws = wb.worksheets[0]

cell_a1 = ws.cell(row=1, column=1)
cell_a1.value = 'おためし'

#Excelファイルの保存
wb.save("Sample.xlsx")

3.PDF化する際に日本語を含んでいる場合はフォントがないのでColab環境に日本語フォントを追加する。

#フォントをダウンロード(ZIP解凍)
!wget https://moji.or.jp/wp-content/ipafont/IPAexfont/IPAexfont00301.zip
!unzip IPAexfont00301.zip
!mkdir -p /usr/share/fonts/ipa

#フォントをfontsフォルダに移動
!cp IPAexfont00301/*.ttf /usr/share/fonts/ipa

#フォントキャッシュをリフレッシュ
!fc-cache -fv

4.ExcelをPDF化するためサーバレスlibreofficeをダウンロードする。

!curl -L https://github.com/vladgolubev/serverless-libreoffice/releases/download/v6.1.0.0.alpha0/lo.tar.gz -o lo.tar.gz
!tar -xf lo.tar.gz

5.ExcelからPDFを作成する。

!instdir/program/soffice --headless --invisible --nodefault --nofirststartwizard --nolockcheck --nologo --norestore --convert-to pdf Sample.xlsx

6.最後に確認のため、Colab環境から自分のGoogleDriveにExcelとPDFをコピーする。

#GoogleDriveへの接続
from google.colab import drive
drive.mount('/content/drive')

#Sample.xlsxをSample.xlsxとしてGoogleDriveに保存
!cp Sample.xlsx /content/drive/My\ Drive/Sample.xlsx

#Sample.pdfをSample.pdfとしてGoogleDriveに保存
!cp Sample.pdf /content/drive/My\ Drive/Sample.pdf

最後に

今回の内容を記載したGoogle Colaboratoryファイルを置いておきます。
上から順番に実行すれば動きます。

余談

ExcelをPDFにしたい等のお話はよく出てくるので調べてみました。
また、私は調べた内容をすぐ忘れるので今回はNoteにしました。

他にも便利なライブラリ、ツールがあるよとか
質問等あれば気軽にコメントお願いします。

いいなと思ったら応援しよう!