6
10

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 5 years have passed since last update.

python3 openpyxl でエクセルに行挿入する

Last updated at Posted at 2018-03-19

仕事でopenpyxl を使い始め、行挿入の方法を探していたが以前のバージョンではどうやら実装されておらず
ブックコピー時に挿入する方法しか検索できなかったが、2.5.0から追加された模様(歓喜

ググっても公式以外に記載が見つからなかった。

■A Python library to read/write Excel 2010 xlsx/xlsm files
http://openpyxl.readthedocs.io/en/stable/search.html?q=insert+rows&check_keywords=yes&area=default

2.5.0 (2018-01-24) (from project openpyxl)
styles with custom names Major Changes You can now insert and delete rows and columns in worksheets

■インストール

pip3 install openpyxl -t .

■行挿入

import openpyxl

#エクセルファイル
XLSFile="C:\\temp\\なんとかエクセルファイル.xlsx"

#ファイルオープン
wb = openpyxl.load_workbook(XLSFile)

#シート名'template'取得
ws_template = wb["template"]

#挿入行数(10行目に挿入)
SheetRowNo=10

#行挿入
ws.insert_rows(SheetRowNo)

#ファイル保存
wb.save(XLSFile)

■備考
エクセルに =Sum(A1:B1) 等の計算マクロが入っている場合、自動的に対象の列行修正は行われないのが難点。

例)セルA1に「100」A2に「200」A3に「=Sum(A1:A2)」が入ってるエクセルに対し、
通常エクセルで2行目に行挿入を行った場合、A4に移動したマクロは「=Sum(A1:A3)」と自動的に変わるが
上記にて2行目に行挿入( ws.insert_rows(2) )を行った場合、「=Sum(A1:A2)」のまま変わらない。

6
10
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
6
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?