データ駆動型の業務シナリオにおいて、Excelセルの枠線を自動で設定することは、データ処理効率を高める上で重要な要素となります。プログラムによって枠線のスタイルを制御することで、大量の帳票の書式を統一できるだけでなく、線の太さや実線・破線といった視覚要素により、データの論理構造を明確に表現することが可能になります。さらに、動的に更新される分析レポートに対しても、コードで定義した枠線ルールが内容の変化に柔軟に対応できるため、手作業による繰り返し調整のミスを防ぎ、再利用可能な標準化フレームワークの構築にも貢献します。
本記事では、Pythonを用いてExcelワークブック内のセルに枠線を設定する方法を解説します。
- PythonでExcelに内枠線と外枠線を設定する方法
- Pythonでセルの上下左右に枠線を設定する方法
使用する方法はFree Spire.XLS for Pythonライブラリに基づいています。PyPIで以下のコマンドからインストールできます:
pip install spire.xls
PythonでExcelに内枠線と外枠線を設定する
Spire.XLSでは、CellRange.BorderAround()
メソッドと CellRange.BorderInside()
メソッドが提供されており、指定したセル範囲に対して、外枠線および内枠線をそれぞれ設定できます。枠線のスタイルや色も指定可能です。
Excelセル範囲に内枠線・外枠線を設定する手順
-
必要なクラスのインポート
使用するクラス:-
Workbook
:Excelワークブックを表すクラス -
LineStyleType
:枠線のスタイル(例:Thick
、Thin
) -
ExcelColors
:枠線に使う定義済みの色
-
-
Workbookインスタンスの作成とファイルの読み込み
Workbook()
でインスタンスを作成し、LoadFromFile(path)
でExcelファイルを読み込みます。 -
ワークシートの取得
Workbook.Worksheets.get_Item(index)
メソッドで対象のワークシートを取得します。 -
枠線を設定するセル範囲の選択
sheet.Range.get_Item(startRow, startCol, endRow, endCol)
で対象の範囲を指定します。 -
外枠線の設定
Range.BorderAround(lineStyle, color)
で範囲全体の外側に枠線を設定します。-
lineStyle
はLineStyleType
の列挙値 -
color
はExcelColors
の列挙値
-
-
内枠線の設定
Range.BorderInside(lineStyle, color)
で範囲内の行・列に枠線を設定します。
表形式のデータや複数行・列にわたる範囲に適しています。 -
保存とリソースの解放
SaveToFile(path)
で変更を保存し、Dispose()
でリソースを解放します。
コード例
from spire.xls import Workbook, LineStyleType, ExcelColors
# Workbookオブジェクトの作成
workbook = Workbook()
# Excelファイルを読み込む
workbook.LoadFromFile("Sample.xlsx")
# 最初のワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# タイトルとヘッダー行を取得
headerRow = sheet.Range.get_Item(1, 1, 2, sheet.Range.ColumnCount)
# タイトルとヘッダーに外枠線を設定
headerRow.BorderAround(LineStyleType.Thick, ExcelColors.BlueGray)
# データ行を取得
dataRows = sheet.Range.get_Item(3, 1, sheet.Range.RowCount, sheet.Range.ColumnCount)
# データ行に内枠線を設定
dataRows.BorderInside(LineStyleType.Thin, ExcelColors.BrightGreen)
# ファイルを保存してリソースを解放
workbook.SaveToFile("output/OutsideInsideBorders.xlsx")
workbook.Dispose()
Pythonでセルの上下左右に枠線を設定する
Spire.XLSでは、CellRange.Style.Borders.get_Item()
メソッドを用いて、セルの上下左右や斜線の枠線を個別に設定することも可能です。各枠線の種類に対してスタイルや色を指定できます。
セルや行に個別の枠線を設定する手順
-
必要なクラスのインポート
使用するクラス:-
Workbook
:Excelワークブック -
BordersLineType
:枠線の種類(例:EdgeTop
、EdgeBottom
など) -
LineStyleType
:枠線のスタイル(例:Thick
、Dashed
など) -
Color
:枠線の色(Color.get_XXX()
で取得可能)
-
-
Workbookの作成とExcelファイルの読み込み
- インスタンス作成:
workbook = Workbook()
- ファイル読み込み:
workbook.LoadFromFile(path)
- インスタンス作成:
-
対象ワークシートの取得
Workbook.Worksheets.get_Item(index)
でワークシートを取得 -
対象のセルまたは行の取得
- 行を取得:
sheet.Rows.get_Item(rowIndex)
- セルを取得:
sheet.Range.get_Item(row, column)
- 行を取得:
-
枠線スタイルと色の設定
- 対象の枠線を取得:
style = target.Style.Borders.get_Item(BordersLineType.XXX)
XXX
は以下のいずれか:-
EdgeTop
(上枠線) -
EdgeBottom
(下枠線) -
EdgeLeft
(左枠線) -
EdgeRight
(右枠線) -
DiagonalUp
(斜め上) -
DiagonalDown
(斜め下)
-
- 線のスタイルと色を設定:
style.LineStyle = LineStyleType.XXX style.Color = Color.get_XXX()
- 対象の枠線を取得:
-
ファイルの保存とリソースの解放
SaveToFile(path)
で保存し、Dispose()
で終了処理
コード例
from spire.xls import Workbook, BordersLineType, LineStyleType, Color
# Workbook オブジェクトの作成
workbook = Workbook()
# Excel ファイルを読み込む
workbook.LoadFromFile("Sample.xlsx")
# 最初のワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# 【例1】第2行の下枠線を白の太線に設定
row2 = sheet.Rows.get_Item(1)
row2.Style.Borders.get_Item(BordersLineType.EdgeBottom).LineStyle = LineStyleType.Thick
row2.Style.Borders.get_Item(BordersLineType.EdgeBottom).Color = Color.get_White()
# 【例2】第4行の上枠線を赤の点線に設定
row4 = sheet.Rows.get_Item(3)
row4.Style.Borders.get_Item(BordersLineType.EdgeTop).LineStyle = LineStyleType.Dotted
row4.Style.Borders.get_Item(BordersLineType.EdgeTop).Color = Color.get_Red()
# 【例3】第6行第2列のセルに左枠線(青の点画線)を設定
cell1 = sheet.Range.get_Item(6, 2)
cell1.Style.Borders.get_Item(BordersLineType.EdgeLeft).LineStyle = LineStyleType.DashDotDot
cell1.Style.Borders.get_Item(BordersLineType.EdgeLeft).Color = Color.get_Blue()
# 【例4】第8行第2列のセルに右枠線(茶色の破線)を設定
cell2 = sheet.Range.get_Item(8, 2)
cell2.Style.Borders.get_Item(BordersLineType.EdgeRight).LineStyle = LineStyleType.Dashed
cell2.Style.Borders.get_Item(BordersLineType.EdgeRight).Color = Color.get_Brown()
# 【例5】第10行に下方向の斜線枠線(黄色の二重線)を設定
row10 = sheet.Rows.get_Item(9)
row10.Style.Borders.get_Item(BordersLineType.DiagonalDown).LineStyle = LineStyleType.Double
row10.Style.Borders.get_Item(BordersLineType.DiagonalDown).Color = Color.get_Yellow()
# 【例6】第12行に上方向の斜線枠線(水色の中太線)を設定
row12 = sheet.Rows.get_Item(11)
row12.Style.Borders.get_Item(BordersLineType.DiagonalUp).LineStyle = LineStyleType.Medium
row12.Style.Borders.get_Item(BordersLineType.DiagonalUp).Color = Color.get_Aqua()
# ファイルを保存し、リソースを解放
workbook.SaveToFile("output/SingleBorders.xlsx")
workbook.Dispose()
本記事では、Pythonを使用してExcelに枠線を設定する方法を紹介しました。内枠線および外枠線の設定方法に加え、上下左右および斜線枠線の個別設定方法も解説しました。