【Python】openpyxlでExcelのセルをコピー・削除・結合・解除する方法

PythonのopenpyxlでExcel操作でセルを自由に扱う方法を紹介していきます。結合や削除ができると作る表のバリエーションも広がりますね。

これから紹介するコードは以下のコードの続きになると考えてください。シートまで開いた状態からのスタートになります。

また、どのセルを変更しているのかは以下のExcelシートを参考にしていください。

PythonでExcel操作
元のファイルデータ

Excelファイルの読み込みからシートの取得までの方法は以下の記事にまとめています。

関連記事

PythonでExcel操作をするときには必ずファイル(ワークブック)の読み込みからシートの指定をする必要があります。 今回はそんな基本的な部分のコードの書き方を3ステップで紹介していきます。 1:openpyxlモジュールの[…]

PythonでExceを読み込む方法【ワークブックからシートの指定まで】

セルを指定する2つの方法は以下の記事にまとめています。この記事では行列名を指定する方法のみ解説します。

関連記事

Pythonを使ってExcel操作をするうえでセルの値を自由に変更できないと意味がないですよね。文字列や数値の書き込みだけでなく数式の書き込みもできるようになりましょう。 今回はセルの基本的な扱い方を紹介していきます。もちろん、Ex[…]

openpyxlでExcelのセルから読み込み・書き込みする方法
  • Excelファイルを取得するとWorkbookオブジェクトが作られます
  • シートを取得するとWorksheetオブジェクトが作られます
  • セルを取得するとCellオブジェクトが作られます
  • 保存してからファイルを開かないと変更が反映されません

セルの値を取得・削除・コピー

値の取得

value属性を使う

セルに入力されている値を取得してくれます。

値の削除

  • value属性に「None」を代入
  • value属性がなくてもOK
PythonでExcelのセルを削除
削除後のデータ

B4とC4のセルの値が消去されています。

値のコピー

コピー元のvalue属性値をコピー先のセルのvalue属性値に代入

PythonでExcel操作
A1をE1にコピー

A1の「バイト代」をE1に代入しています。

セルの値を移動

セルの値をコピー&削除する

PythonでExcel操作
A1をE1に移動

先ほどのコピーと削除を組み合わせると移動できます。

セルの結合・解除

結合する

  • merge_cellsメソッドを使う
  • 引数は結合したいセルの範囲をコロンでつなげる
    • コロンも含めてすべて文字列で渡す
Pythonのopenpyxlでセルの結合
結合後のデータ

矩形領域(四角形の領域)を結合するときはその領域の左上と右下の行列名をコロン(:)でつなげて書きます。

一行または一列を結合するときも同様にコロン(:)でつなげて書きます。

結合したセルに書き込む場合は、領域内でもっとも行列名が若いセルを指定します。矩形領域なら左上、一列なら一番上、一行なら左端です。

Pythonのopenpyxlでセルの結合
結合したセルに書き込み
Attributeerror: 'Mmergedcell' object attribute 'value' is read-onlyとは
結合されたセルの左上以外のセルに書き込もうとした場合に出るエラーです。「read-only」となっているので読み込み専用です。
書き込むときは結合しているセルのなかで最も行列名が若いセルを指定します。

結合解除

  • unmerge_cellsメソッドを使う
  • 引数は結合したいセルの範囲をコロンでつなげる
    • コロンも含めてすべて文字列で渡す
Pythonのopenpyxlでセルの結合解除
結合解除後

まとめ

  • セルの値を取得:value属性
  • セルの値を削除:value属性に「None」を代入
  • セルの結合:merge_cells関数
  • 結合解除:unmerge_cells関数

当ブログではPython初心者が独学で習得するためのカリキュラムを公開中!

初心者がPythonを独学で習得できたロードマップはコチラ

PythonのExcel操作
最新情報をチェックしよう!