0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでExcelのセルの枠線を設定する

Last updated at Posted at 2025-04-18

データ駆動型の業務シナリオにおいて、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セル範囲に内枠線・外枠線を設定する手順

  1. 必要なクラスのインポート
    使用するクラス:

    • Workbook:Excelワークブックを表すクラス
    • LineStyleType:枠線のスタイル(例:ThickThin
    • ExcelColors:枠線に使う定義済みの色
  2. Workbookインスタンスの作成とファイルの読み込み
    Workbook() でインスタンスを作成し、LoadFromFile(path) でExcelファイルを読み込みます。

  3. ワークシートの取得
    Workbook.Worksheets.get_Item(index) メソッドで対象のワークシートを取得します。

  4. 枠線を設定するセル範囲の選択
    sheet.Range.get_Item(startRow, startCol, endRow, endCol) で対象の範囲を指定します。

  5. 外枠線の設定
    Range.BorderAround(lineStyle, color) で範囲全体の外側に枠線を設定します。

    • lineStyleLineStyleType の列挙値
    • colorExcelColors の列挙値
  6. 内枠線の設定
    Range.BorderInside(lineStyle, color) で範囲内の行・列に枠線を設定します。
    表形式のデータや複数行・列にわたる範囲に適しています。

  7. 保存とリソースの解放
    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()

出力結果のイメージ
uploading...0

Pythonでセルの上下左右に枠線を設定する

Spire.XLSでは、CellRange.Style.Borders.get_Item() メソッドを用いて、セルの上下左右や斜線の枠線を個別に設定することも可能です。各枠線の種類に対してスタイルや色を指定できます。

セルや行に個別の枠線を設定する手順

  1. 必要なクラスのインポート
    使用するクラス:

    • Workbook:Excelワークブック
    • BordersLineType:枠線の種類(例:EdgeTopEdgeBottomなど)
    • LineStyleType:枠線のスタイル(例:ThickDashedなど)
    • Color:枠線の色(Color.get_XXX() で取得可能)
  2. Workbookの作成とExcelファイルの読み込み

    • インスタンス作成:workbook = Workbook()
    • ファイル読み込み:workbook.LoadFromFile(path)
  3. 対象ワークシートの取得
    Workbook.Worksheets.get_Item(index) でワークシートを取得

  4. 対象のセルまたは行の取得

    • 行を取得:sheet.Rows.get_Item(rowIndex)
    • セルを取得:sheet.Range.get_Item(row, column)
  5. 枠線スタイルと色の設定

    • 対象の枠線を取得:
      style = target.Style.Borders.get_Item(BordersLineType.XXX)
      XXX は以下のいずれか:
      • EdgeTop(上枠線)
      • EdgeBottom(下枠線)
      • EdgeLeft(左枠線)
      • EdgeRight(右枠線)
      • DiagonalUp(斜め上)
      • DiagonalDown(斜め下)
    • 線のスタイルと色を設定:
      style.LineStyle = LineStyleType.XXX
      style.Color = Color.get_XXX()
      
  6. ファイルの保存とリソースの解放
    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()

出力結果のイメージ
2025-04-18_174421.png


本記事では、Pythonを使用してExcelに枠線を設定する方法を紹介しました。内枠線および外枠線の設定方法に加え、上下左右および斜線枠線の個別設定方法も解説しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?