Home » Python » OpenPyXLの使い方 » OpenPyXLでセルの罫線を消すには?

OpenPyXLでセルの罫線を消すには?

動作検証バージョン:Windows 10 Pro(64-bit)+ Python 3.11.1(64-bit) + OpenPyXL 3.0.10

「Python OpenPyXL 罫線 削除」
という検索でアクセスがあることに気がつきました。

Excelファイルを操作するPythonの外部ライブラリOpenPyXLを使って、セルの罫線を削除するにはどのようなコードを書けばいいのかを調べていらしたのでしょう。

[スポンサードリンク]

OpenPyXLでセルの罫線を消すサンプル

先頭のワークシートに、さまざまな罫線を設定したsamp.xlsxブックを、Cドライブtempフォルダーに用意してから、以下のスクリプトを実行してください。

import openpyxl as xl

bk = xl.load_workbook(r'C:\temp\samp.xlsx')
ws = bk.worksheets[0]

no_borders = xl.styles.borders.Border(
    top = None,
    bottom = None,
    left = None,
    right = None,
)

for row in ws.rows:
    for cel in row:
        cel.border = no_borders

bk.save(r'C:\temp\samp_no_borders.xlsx')

先頭シートから罫線の削除された、samp_no_borders.xlsxとして保存されます。

OpenPyXLでセルの見た目を設定する場合

OpenPyXLでセルの見た目を設定する場合、セルとは無関係の変数に見た目を設定しておいてから、Cellオブジェクトの属性にその変数を代入する手法がよく使われます。

フォントを表すFontオブジェクト、塗りつぶしを表すPatternFillオブジェクト、配置を表すAlignmentオブジェクト、本記事で紹介する罫線を表すBordersオブジェクト等の場合に、そのようなコードにします。

上記のスクリプトでも、変数no_bordersに、上下左右の罫線がない状態を用意しておいてから、

no_borders = xl.styles.borders.Border(
    top = None,
    bottom = None,
    left = None,
    right = None,
)

変数no_bordersを各Cellオブジェクトのborder属性に代入することで、罫線なしの状態にしています。

for row in ws.rows:
    for cel in row:
        cel.border = no_borders

最終更新日時:2023-02-09 05:25

[スポンサードリンク]

Home » Python » OpenPyXLの使い方 » OpenPyXLでセルの罫線を消すには?

「OpenPyXLの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.