エクセルシートの罫線を含んだ行挿入の方法です。
Pythonで既存のエクセルシートにデータを追記する時に罫線も考慮しなければなりません。前回、簡単に同じスタイルの罫線を含んだセルが複製される方法をシェアいたしましたが、今回はそれよりも簡単です。
テープレートを用意する
罫線のある表にデータ追加していく場合、罫線の表のテンプレートを準備しておくのです。
上記の表にデータを追加していく場合のテンプレート、下記を準備します。
2行目は表の一番上に適応、3行目は表の中間に適応、4行目は表の最後に適応します。列は実際の表と同じ所に配置します。
サンプルコード
import openpyxl
from copy import copy
def copystyle(in_ws, pos, in_row, outputfile) :
tempfile = "C:/Labo/template.xlsx"
twb = openpyxl.load_workbook(tempfile)
tws = twb.worksheets[0]
i = 1
for row in tws.iter_rows():
for cell in row:
if(pos == 0):
if cell.row == 2:
in_ws.cell(row=in_row, column=i).border = copy(cell.border)
i = i + 1
if(pos == 1):
if cell.row == 3:
in_ws.cell(row=in_row, column=i).border = copy(cell.border)
i = i + 1
if(pos == 2):
if cell.row == 4:
in_ws.cell(row=in_row, column=i).border = copy(cell.border)
i = i + 1
wb1.save(outputfile)
filename = "C:/Labo/sheetfile4.xlsx"
filename2 = "C:/Labo/sheetfile5.xlsx"
wb1 = openpyxl.load_workbook(filename)
ws = wb1.worksheets[0]
copystyle(ws, 0, 3,filename2)
copystyle(ws, 1, 4,filename2)
copystyle(ws, 2, 5,filename2)
実行すると下記の表が作成されます。
実際に応用するには、最後のcopystyleをデータ追加に合せて使っていけばいいでしょう。
copystyle(ws, 0, 3,filename2)
copystyle(ws, 1, 4,filename2)
copystyle(ws, 2, 5,filename2)
コメント