IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Pythonでネットワーク自動化をしよう

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第22回 OpenPyXLライブラリ(2)スタイル (小澤昌樹) 2024年7月

1. はじめに

みなさん、こんにちは。

前回のコラムでは、Excelファイルを操作するためのOpenPyXLライブラリについて、新しいExcelファイルの作成方法、既存のファイルへのデータの追記方法、そしてデータの読み取り方法などの基本的な操作の方法を紹介しました。

今回からは、OpenPyXLライブラリの少し踏み込んだ使い方に目を向けて、実例を紹介していきます。今回は、セルに色や枠線を設定するスタイルの使い方を紹介します。

2. セルにスタイルを適用する

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

Font クラスは、セル内のテキストのフォントスタイルを設定するために使われます。以下のようなプロパティがあります。

  • name:フォントの種類。例えば「Times New Roman」など。
  • size:フォントサイズ。
  • bold:太字にするかどうか。太字にする場合はTrueを設定。
  • italic:イタリック体にするかどうか。イタリックにする場合はTrueを設定。
  • underline:下線を引くかどうか。none、single、doubleなどを指定する。
  • color:フォントの色。Color クラスまたはカラーコード(例:#FF0000)で指定する。

②Color

Color クラスは、スタイル設定において色を指定するために使われます。16進数のカラーコードや名前で色を指定することができます。例えば、青色のColorオブジェクトを生成するには、「Color('0000FF')」のように記述します。

③PatternFill

PatternFill クラスは、セルの背景色やパターンを設定するために使われるものです。

  • start_color:塗りつぶしの開始色。
  • end_color:塗りつぶしの終了色。
  • fill_type:塗りつぶしのタイプ。solid、gray125、lightGrid などを指定する。

④Border

Border クラスは、セルの周りに枠線を設定するために使われます。Border クラス自体は、セルの4辺(left, right, top, bottom)それぞれに Side オブジェクトを設定する形で使われます。

⑤Side

Side クラスは、セルの各辺の枠線のスタイルを指定するために使われます。

  • style:枠線のスタイル。thin、medium、dashed などを指定する。
  • color:枠線の色を指定します。

セルの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ファイルは以下のとおりです。

fig01
3. まとめ

今回は、OpenPyXLを使用して、Excelのセルにスタイルを適用する方法について説明しました。セルに色をつけるなどのスタイルの適用が容易に行えるので、レポート作成などでも便利に使えます。

次回も引き続きOpenPyXLについてです。数式の設定方法やチャートの追加について紹介する予定です。それでは、次回もお楽しみに。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes