エクセルシートの罫線を含んだ行挿入の方法です。
Pythonで既存のエクセルシートにデータを追記する時に罫線も考慮しなければなりません。今回紹介する方ですと簡単に同じスタイルの罫線が複製されます。
通常の行の挿入の問題点
4行目に行を挿入するコードになります。しかしこれでは問題があります。
import openpyxl
filename = "C:/Labo/sheetfile4.xlsx"
filename2 = "C:/Labo/sheetfile5.xlsx"
wb1 = openpyxl.load_workbook(filename)
ws = wb1.worksheets[0]
ws.insert_rows(4)
wb1.save(filename2)
それは罫線がコピーされないのです。
罫線を含めてコピーする
下記のコードを使えば簡単に罫線の付いた行を挿入できます。
import openpyxl
from copy import copy
filename = "C:/Labo/sheetfile4.xlsx"
filename2 = "C:/Labo/sheetfile5.xlsx"
wb1 = openpyxl.load_workbook(filename)
ws = wb1.worksheets[0]
ws.insert_rows(4)
i = 1
for row in ws.iter_rows():
for cell in row:
if cell.row == 3:
ws.cell(row=4, column=i).border = copy(cell.border)
i = i + 1
wb1.save(filename2)
4行目は罫線が付いた行が挿入されます。
下記のコードは3行目の罫線のスタイルを4行目にコピーしています。
if cell.row == 3:
ws.cell(row=4, column=i).border = copy(cell.border)
気を付けたいのは2行目もしくは5行目の罫線をコピーすると上側もしくは下側の罫線もコピーされています。
そのため、上下に罫線が付いていない行をコピーするというのが簡単に罫線を追加するカラクリになります。
コメント