【完全独学Python】openpyxlで罫線の操作はこれだけ覚えて!

Excel

この記事でわかること

  • openpyxlでExcelに罫線を引く方法がわかる!
  • openpyxlで罫線のデザインを設定方法がわかる!
  • openpyxlである範囲に指定した罫線を引く方法がわかる!
  • 実際に動くサンプルコードが手に入る!
ゆーや
ゆーや

openpyxlというモジュールを使っていくよ!

インストールなどは以下の記事を見てね!

罫線を操作するためのモジュール

罫線を操作するには「Border」と「Side」だけ理解すれば大丈夫です!

Borderモジュール

openpyxlで罫線を引くためには、Borderクラスを使用します!

Borderクラスは、セルの上下左右に罫線を設定するためのクラスです!

以下のように書きます!

Border(left={セルの左側の罫線の設定}, right={右側}, top={上側},bottom={下側})

ゆーや
ゆーや

{罫線の設定}には次のSideを使っていくよ!

Sideモジュール

Sideクラスは、罫線のスタイルや色を定義するために使用されます!

Sideクラスの主なパラメータには以下があります!

Side(style={罫線のstyle}, color={罫線の色})

ゆーや
ゆーや

では、実際に動くサンプルコードを見ていくよ!

実際に罫線を操作する(サンプルコード)

罫線を引く

import openpyxl
from openpyxl.styles import Border, Side

# 新しいExcelワークブックを作成
wb = openpyxl.Workbook()
ws = wb.active

# セルA1に値を設定
ws['B2'] = '罫線'

# 罫線のスタイルを定義
thin_border = Border(left=Side(style='thin'),
                     right=Side(style='thin'),
                     top=Side(style='thin'),
                     bottom=Side(style='thin'))

# セルB2に罫線を適用
ws['B2'].border = thin_border

# Excelファイルを保存
wb.save('sample.xlsx')
ゆーや
ゆーや

BorderとSideで作った罫線の設定をws[‘B2’].borderに設定するだけ!

「thin」は細い線の事だよ!

罫線のスタイルの種類

import openpyxl
from openpyxl.styles import Border, Side

# 新しいExcelワークブックを作成
wb = openpyxl.Workbook()
ws = wb.active

# セルに適用する罫線スタイルのリスト
styles = ['dashDot', 'dashDotDot', 'dashed', 'dotted', 'double', 'hair', 'medium',
          'mediumDashDot', 'mediumDashDotDot', 'mediumDashed', 'none', 'slantDashDot', 'thick', 'thin']

# セルA1から順番に異なる罫線スタイルを適用
for i, style in enumerate(styles, start=1):
    cell = ws.cell(row=i, column=1, value=style)
    cell.border = Border(left=Side(style=style),
                         right=Side(style=style),
                         top=Side(style=style),
                         bottom=Side(style=style))

# Excelファイルを保存
wb.save('sample.xlsx')
ゆーや
ゆーや

全部で14種類あるみたい!

よく使うものは覚えておこう!

罫線の色の設定

import openpyxl
from openpyxl.styles import Border, Side

# 新しいExcelワークブックを作成
wb = openpyxl.Workbook()
ws = wb.active

# セルC3に値を設定
ws['C3'] = '罫線'

# 罫線の色を定義
colored_border = Border(left=Side(style='thick', color='FF0000'),
                        right=Side(style='thick', color='00FF00'),
                        top=Side(style='thick', color='0000FF'),
                        bottom=Side(style='thick', color='FFFF00'))

# セルC3に罫線を適用
ws['C3'].border = colored_border

# Excelファイルを保存
wb.save('sample.xlsx')
ゆーや
ゆーや

色の指定はcolorにカラーコードを入れればOK!

他にも「red」などでも指定可能!

部分的に罫線を引く

import openpyxl
from openpyxl.styles import Border, Side

# 新しいExcelワークブックを作成
wb = openpyxl.Workbook()
ws = wb.active

# セルA1に値を設定
ws['B2'] = '罫線'

# 罫線のスタイルを定義
thin_border = Border(left=Side(style='thick'))

# セルB2に罫線を適用
ws['B2'].border = thin_border

# Excelファイルを保存
wb.save('sample.xlsx')
ゆーや
ゆーや

部分的に引きたいときは、

Borderの引数を指定しなければOKだよ!

罫線の消し方

import openpyxl
from openpyxl.styles import Border, Side

# 新しいExcelワークブックを作成
wb = openpyxl.Workbook()
ws = wb.active

# セルC3に値を設定
ws['C3'] = '罫線'

# 罫線の色を定義
colored_border = Border(left=Side(style='thick', color='FF0000'),
                        right=Side(style='thick', color='00FF00'),
                        top=Side(style='thick', color='0000FF'),
                        bottom=Side(style='thick', color='FFFF00'))

# セルC3に罫線を適用
ws['C3'].border = colored_border

# 罫線を削除
none_border = Border(left=None, right=None, top=None, bottom=None)
ws['C3'].border = none_border


# Excelファイルを保存
wb.save('sample.xlsx')
ゆーや
ゆーや

Borderの各値に「None」を設定したものを罫線を消したいセルにセットしましょう!

そうすると、消すことが可能です!

コメント

タイトルとURLをコピーしました