動作検証バージョン:Windows 11 Home + Python 3.10.6(64-bit) + xlwings 0.29.1 + 64bit Excel(バージョン2302 ビルド16130.20218)
「xlwings 行挿入」
という検索でアクセスがありました。
表計算ソフトExcelを操作するPythonのライブラリxlwingsを使って、ワークシートに行を挿入するには、どのようなコードを書けばいいのか調べていらしたのでしょう。
行挿入を確認する準備
行挿入の前に、準備のスクリプトを実行しましょう。
以下のスクリプトを実行すると、
import xlwings as xw
bk = xw.Book()
sht = bk.sheets.active
for i in range(1, 6):
sht.cells(i, 1).value = i
新規にブックが作成され、アクティブシートのA1:A5セルに1から5までの整数が
上図のように入力されます。
xlwingsで行を挿入する
準備ができたら、本題の行を挿入するコードの実行です。
以下のコードを実行すると、
sht.range('3:3').insert('down')
3行目に行挿入が行われ、以下のような状態になります。
3行目に空白行が挿入されています。
つづいて、
sht.range('5:6').insert('down')
を実行すると、5:6行目に行が挿入されて、
上図のような状態になります。
行を表すRangeオブジェクトのinsert()メソッドで行を挿入できるということです。
Range.insert()メソッドの第1引数shiftには、文字列「down」または「right」を指定でき、上記のコードの場合、引数を省略した
sht.range('3:3').insert()
sht.range('5:6').insert()
でも、行の挿入が行われます。
Range.insert()メソッドの定義
Range.insert()メソッドは、_xlwindows.pyモジュールのRangeクラスに以下のように定義されています。
def insert(self, shift=None, copy_origin=None):
shifts = {
"down": InsertShiftDirection.xlShiftDown,
"right": InsertShiftDirection.xlShiftToRight,
None: None,
}
copy_origins = {
"format_from_left_or_above": InsertFormatOrigin.xlFormatFromLeftOrAbove,
"format_from_right_or_below": InsertFormatOrigin.xlFormatFromRightOrBelow,
}
self.xl.Insert(Shift=shifts[shift], CopyOrigin=copy_origins[copy_origin])
- 『Excel VBAユーザーのためのPythonプログラミング入門』発売に
- 拙著で紹介しているBooks/Bookが持つプロパティとメソッドの一覧
- 拙著で紹介しているSheets/Sheetが持つプロパティとメソッドの一覧
- 拙著で紹介しているRangeが持つプロパティとメソッドの一覧
最終更新日時:2023-10-13 12:49
[スポンサードリンク]
Home » Python » xlwingsの使い方 » xlwingsで行を挿入する-Range.insert()メソッド