Home » Python » xlwingsの使い方 » xlwingsで行を挿入する-Range.insert()メソッド

xlwingsで行を挿入する-Range.insert()メソッド

動作検証バージョン: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])

最終更新日時:2023-10-13 12:49

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsで行を挿入する-Range.insert()メソッド

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

検索


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

.