openpyxlでLibreOffice Calcの罫線を一括で引く
表計算ソフトであるLibreOffice Calcでは、データを整理しやすくするために罫線を引くことがよくあります。
しかし、多くの行や列に罫線を引く作業は、マウスを使ってセルを一つ一つ選択するのは非常に手間がかかります。
しかし、Pythonのライブラリであるopenpyxlを使用すれば、プログラムを書くことで、マウスを使うことなく一括で罫線を引くことができます。これにより、作業時間を短縮することができます。
openpyxlとは、Excelファイル(XLSX形式)を操作するためのライブラリですが、LibreOffice Calcでは、XLSX形式の読み込みと保存が出来るので、Excelと同様にopenpyxlで作ったデータを扱うことができます。
今回は、openpyxlを使って、LibreOffice Calcで罫線を引く方法をご紹介します。
今回の使用するPythonのファイル名は「border.py」とします。このプロセスはLinux(Xubuntu)で実行しましたが、WindowsやMacでも同じ手順で行うことができます。
※お使いのパソコンにPythonとopenpyxlをインストールする必要があります。
インストールされていない方は、WindowsやMac、Linux(Ubuntu系)の各種OSのインストール方法を以下のサイトにまとめましたので、ご覧ください。
openpyxlでLibreOffice Calcの罫線を一括で引く方法
1.openpyxlでフォントを設定するサンプルコードをVS Codeにコピーする
このサイトでは、簡単に罫線を引くが出来るように、難しいプログラムの説明をすることはしません。
理由は、LibreOffice Calcの作業の時間短縮にopenpyxlを使ってほしいと思うからです。
ですので、サンプルコードを準備しますので、これを最初にVS Codeに貼り付けてください。
その後に、罫線を引く方法を説明します。
from openpyxl import load_workbook
from openpyxl.styles import Border , Side
wb = load_workbook('罫線を引きたいファイル')
ws = wb.active
罫線の設定名 = Side(color="色", border_style='罫線の種類')
Border = Border(left=罫線の設定名, right=罫線の設定名, top=罫線の設定名, bottom=b罫線の設定名)
for row in ws.iter_rows(min_row=0,min_col=0):
for cell in row:
cell.border = Border
wb.save("保存するファイル名")
2.罫線を引きたいファイルを読み込む
罫線を引きたいファイルを読み込みます。
ここでは例として、以下のborder.xlsxを読み込むことにします。
ファイルの読み込みですが、wb = load_workbook(‘罫線を引きたいファイル‘)の罫線を引きたいファイルの部分にborder.xlsxを入力します。
コードは以下の通りです。
wb = load_workbook('border.xlsx')
3.罫線を引く設定を行う
罫線を引く設定を行うのに、最初に罫線の設定名を決めます。
罫線の設定名は何でも構いません。
今回は罫線の設定ということで、分かりやすく、border_settingにしました。
その後に罫線の色と種類を決めます。
color=”色“, の色の部分に色を16進数で設定します。よくわからない方は以下のサイトに色の16進数が乗っていますので。これを参考に決めて下さい。
今回は黒の色にすることにしたので000000にしました。、color=’000000‘にしました。
罫線の種類を決めます。
border_style=’罫線の種類‘の罫線の種類に使いたい先の種類を入力します。
罫線の種類ですが、以下のものがあります。
- hair…極細線
- thin…通常の先線の太さ
- medium…通常と太線の間の太さ
- thick…太線
- doubie…二重線
今回は、通常の先線の太さにしたいので、border_style=’thin‘にしました。
コードは以下の通りです。
border_setting = Side(color="000000", border_style='thin')
Border = Border(left=border_setting, right=border_setting, top=border_setting, bottom=border_setting)
for row in ws.iter_rows(min_row=0,min_col=0):
for cell in row:
cell.border = Border
4.ファイルの保存名を入力する
最後のファイルの保存名を入力します。
wb.save(‘保存するファイル名‘)の保存するファイル名の部分に、ファイルの保存名を入力します。
今回はborder01.xlsx“にしました。
コードは以下の通りです。
wb.save("border01.xlsx")
以下は1〜4までに書いたコードをまとめたものです。
from openpyxl import load_workbook
from openpyxl.styles import Border , Side
wb = load_workbook('border.xlsx')
ws = wb.active
border_setting = Side(color="000000", border_style='thin')
Border = Border(left=border_setting, right=border_setting, top=border_setting, bottom=border_setting)
for row in ws.iter_rows(min_row=0,min_col=0):
for cell in row:
cell.border = Border
wb.save("border01.xlsx")
5.VS Codeでプログラムを実行する
1〜4で書いたプログラムをVS Codeでプログラムを実行します。
VS Codeの右上の▷ボタンをクリックします。
border01.xlsxを開くと、マウスを使ってセル選択をしないで罫線を一括で引けています。