파이썬 엑셀 순차적 쓰기
조회수 1832회
load_workbook으로 해당 엑셀파일을 불러와서 result 값들을 기록하려고 합니다.
예를들면, B2,B3,B4...쭉 순차적으로 10개의 셀 안에 실행마다 달라지는 result 값을 쓰면서, save 하는 형식을 만드려고 하는데요.
어떤식으로 접근해야할 지 감이 안잡히네요. for문으로 10개의 셀이 담긴 배열의 마지막 인덱스에서 None값을 읽어오면, save 하는 식으로 구현하면 될까요?
ps. 이와 동시에, 셀 병합 함수가 담긴 cellstyle.py를 import해서 값을 읽어옴과 동시에 셀을 병합, 테두리를 입히는 방식까지 하려고 합니다. 아래는 cellstyle.py 입니다.
from openpyxl.styles import colors,Color,Border, Side, PatternFill, Font, GradientFill, Alignment
from openpyxl import Workbook
def style_range(ws, cell_range, border=Border(), fill=None, font=None, alignment=None):
top = Border(top=border.top)
left = Border(left=border.left)
right = Border(right=border.right)
bottom = Border(bottom=border.bottom)
first_cell = ws[cell_range.split(":")[0]]
if alignment:
ws.merge_cells(cell_range)
first_cell.alignment = alignment
rows = ws[cell_range]
if font:
first_cell.font = font
for cell in rows[0]:
cell.border = cell.border + top
for cell in rows[-1]:
cell.border = cell.border + bottom
for row in rows:
l = row[0]
r = row[-1]
l.border = l.border + left
r.border = r.border + right
if fill:
for c in row:
c.fill = fill
wb = Workbook()
ws = wb.active
my_cell = ws['B1']
thin = Side(border_style="thin", color="000000")
border = Border(top=thin, left=thin, right=thin, bottom=thin)
fill = PatternFill("solid", fgColor="DDDDDD")
font = Font(name='HY헤드라인M',size = 17 , bold=True, color="FF0000")
al = Alignment(horizontal="center", vertical="center")
'''
style_range(ws, 'B1:D1', border=border, fill=fill, font=font,alignment=al)
wb.save("styled.xlsx")
'''
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력