2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】Worksheet.move_rangeメソッドを使用して、表(セル)を移動させる。

Posted at

pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、表(セル)の移動に関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。

image.png

上記のようなブック「商品リスト」を

image.png

のように表を移動させたいです。

Worksheet.move_rangeメソッド

ws.move_range('移動するセルの範囲',
              rows=移動する行数, cols=移動する列数,
              translate=数式等のセル参照を更新する場合はTrue)

シート上で表の様な複数のセルを移動させる場合は
Worksheet.move_rangeメソッドを使用します。
気を付けておくべきことが何点かあります。

  • rows:下に移動させる場合は整数(上なら負の整数)
  • cols:右に移動させる場合は整数(左なら負の整数)
  • rows引数cols引数に範囲外の値を入れてしまうとエラーになる
  • 移動先の位置にすでに値や表があったとしてもセルを上書きしてしまう
  • 数式の更新は基本行わない。(translate=Trueの記述追加が必要)

最終的なコード

from openpyxl import load_workbook

wb = load_workbook('商品リスト.xlsx')
ws = wb.active
ws.move_range('B2:I24', rows=1, cols=3, translate=True)

wb.save('商品リスト_移動.xlsx')

translateに気付かず、右往左往していました。translate=Trueは偉大。
セルの書式設定もそのまま移動してくれるのでたいへん重宝します。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?