「xlwings リストをセルに」
「xlwings list range 書き込み」
といった検索で時折アクセスがあります。
Pythonのリストを、xlwingsを使ってセルに入力するには、どのようなコードを書けばいいのかを調べていらしたのでしょう。
xlwingsでリストをセルに入力する基本
以下のスクリプトを実行すると、xlwingsを使って新規のブックが作成され、アクティブシートのA1:A3セルに[1, 2, 3]と入力されます。
bk = xw.Book()
sht = bk.sheets.active
sht.range('A1').value = [1, 2, 3]
の部分は、
sht.range('A1:A3').value = [1, 2, 3]
などと指定しても同じ結果になりますが、左上のセルを1つだけ指定するほうが簡単です。
.options(transpose=True)で縦方向に
先ほどのスクリプトにつづいて、Range.options()メソッドの引数transposeにTrueを指定した以下のコードを実行すると、縦方向のA3:A5セルに[1, 2, 3]が入力されます。
sht.range('A3').options(transpose=True).value = [1, 2, 3]
リストのリストをセル範囲に入力する
先ほどのスクリプトにつづいて、以下のコードを実行すると、A7:C8セルに[[1, 2, 3], [4, 5, 6]]が入力されます。
sht.range('A7').value = [[1, 2, 3], [4, 5, 6]]
リストのリストであれば、表の形で入力が行われます。
Range.options(transpose=True)でリストのリストも向きを変えられる
リストのリストに対しても「.options(transpose=True)」は有効です。
以下のコードでA10:A12セルに[[1, 2, 3], [4, 5, 6]]が入力されます。
sht.range('A10').options(transpose=True).value = [[1, 2, 3], [4, 5, 6]]
Rangeオブジェクトのoptions()メソッドは、pandasのDataFrameをExcelに入力するコードでも使用しています。
最終更新日時:2023-08-09 17:26
- Newer:列番号をアルファベットにする関数もOpenPyXLにはある-get_column_letter()関数
- Older:OpenPyXLで列のアルファベットを取得する-Cell.column_letter属性
Home » Python » xlwingsの使い方 » xlwingsでリストをセルに入力する