CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
みなさん、こんにちは。
前回のコラムでは、Excelファイルを操作するためのOpenPyXLライブラリについて、新しいExcelファイルの作成方法、既存のファイルへのデータの追記方法、そしてデータの読み取り方法などの基本的な操作の方法を紹介しました。
今回からは、OpenPyXLライブラリの少し踏み込んだ使い方に目を向けて、実例を紹介していきます。今回は、セルに色や枠線を設定するスタイルの使い方を紹介します。
OpenPyXLでも、Excelでの操作と同様に、セルに色やフォントスタイルを適用して、視覚的に際立たせることができます。
まずは、そのサンプルコードを以下に示します。
from openpyxl import Workbook
from openpyxl.styles import Font, Color, PatternFill, Border, Side
# ワークブックとシートを作成
wb = Workbook()
ws = wb.active
# セルにデータを追加
ws[’A1’] = ’Hello’
ws[’A2’] = ’World’
# フォントスタイルを設定
bold_red_font = Font(bold=True, color=’FF0000’)
ws[’A1’].font = bold_red_font
# 背景色を設定
fill_color = PatternFill(start_color=’FFFF00’, end_color=’FFFF00’, fill_type=’solid’)
ws[’A1’].fill = fill_color
# ボーダーを設定
thin_border = Border(left=Side(style=’thin’),
right=Side(style=’thin’),
top=Side(style=’thin’),
bottom=Side(style=’thin’))
ws[’A1’].border = thin_border
# ファイルを保存
wb.save(’sample.xlsx’)
ここで注目すべきは、openpyxl.stylesをインポートしている部分です。
from openpyxl.styles import Font, Color, PatternFill, Border, Side
openpyxl.stylesは、OpenPyXLライブラリのスタイリング機能を提供するクラスで、セルやテーブルのスタイリングを変更するために使用できます。ここでインポートしている各クラスについて、もう少し解説を加えましょう。
Font クラスは、セル内のテキストのフォントスタイルを設定するために使われます。以下のようなプロパティがあります。
Color クラスは、スタイル設定において色を指定するために使われます。16進数のカラーコードや名前で色を指定することができます。例えば、青色のColorオブジェクトを生成するには、「Color('0000FF')」のように記述します。
PatternFill クラスは、セルの背景色やパターンを設定するために使われるものです。
Border クラスは、セルの周りに枠線を設定するために使われます。Border クラス自体は、セルの4辺(left, right, top, bottom)それぞれに Side オブジェクトを設定する形で使われます。
Side クラスは、セルの各辺の枠線のスタイルを指定するために使われます。
セルの4辺に薄い枠線を設定するには、BorderクラスとSideクラスを使って、以下のように記述します。
# 薄いボーダーのSideを作成
thin_side = Side(style=’thin’)
# 4辺に薄い枠線を設定したBorderを作成
thin_border = Border(left=thin_side, right=thin_side, top=thin_side, bottom=thin_side)
これらのクラスを組み合わせることで、Excelファイル内のセルやテーブルのスタイルを細かく調整することができます。最初に提示したサンプルコードに戻って、解説をしましょう。
# フォントスタイルを設定
bold_red_font = Font(bold=True, color=’FF0000’) # 太字で赤色のフォントスタイルを定義しています。colorには16進数形式で色を指定しています。
ws[’A1’].font = bold_red_font # 定義したフォントスタイルをセルA1に適用します。
# 背景色を設定
fill_color = PatternFill(start_color=’FFFF00’, end_color=’FFFF00’, fill_type=’solid’) # セルの背景色を黄色に設定します。fill_typeが「solid」であるため、単色で塗りつぶされます。
ws[’A1’].fill = fill_color # 定義した背景色をセルA1に適用します。
# ボーダーを設定
thin_border = Border(left=Side(style=’thin’),
right=Side(style=’thin’),
top=Side(style=’thin’),
bottom=Side(style=’thin’)) # 各辺のスタイルを設定するためのコンストラクターで、ここでは4辺すべてにthinスタイルの枠線を設定しています。
ws[’A1’].border = thin_border # 定義したボーダースタイルをセルA1に適用します。
サンプルコードを実行した結果、作成されるExcelファイルは以下のとおりです。
今回は、OpenPyXLを使用して、Excelのセルにスタイルを適用する方法について説明しました。セルに色をつけるなどのスタイルの適用が容易に行えるので、レポート作成などでも便利に使えます。
次回も引き続きOpenPyXLについてです。数式の設定方法やチャートの追加について紹介する予定です。それでは、次回もお楽しみに。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes