파이썬 엑셀 순차적 쓰기

조회수 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")
'''
  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)