# 파이썬으로 엑셀 파일 만들기 — openpyxl
# 설치가 먼저입니다:  pip install openpyxl

from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, Alignment

매출 = [
    ("1월", 1200000),
    ("2월", 980000),
    ("3월", 1450000),
]

# 1) 워크북(파일) 과 시트 만들기
wb = Workbook()
ws = wb.active          # 새 파일에는 시트가 하나 이미 들어 있습니다
ws.title = "매출"        # 시트 이름은 아래쪽 탭에 보이는 그 이름입니다

# 2) 머리글 — append 는 다음 빈 줄에 한 줄을 붙입니다
ws.append(["월", "매출액"])
for 셀 in ws[1]:
    셀.font = Font(bold=True)
    셀.alignment = Alignment(horizontal="center")

# 3) 데이터
for 월, 금액 in 매출:
    ws.append([월, 금액])

# 4) 합계 — 수식은 문자열로 넣습니다. 계산은 엑셀이 합니다.
마지막 = ws.max_row                     # 지금까지 쓴 마지막 줄 번호
ws.append(["합계", "=SUM(B2:B" + str(마지막) + ")"])
ws.cell(row=마지막 + 1, column=1).font = Font(bold=True)
ws.cell(row=마지막 + 1, column=2).font = Font(bold=True)

# 5) 보기 좋게 — 열 너비와 천 단위 쉼표
ws.column_dimensions["A"].width = 12
ws.column_dimensions["B"].width = 16
for 행 in ws.iter_rows(min_row=2, min_col=2, max_col=2):
    for 셀 in 행:
        셀.number_format = "#,##0"

# 6) 저장 — 이걸 부르지 않으면 파일이 만들어지지 않습니다
wb.save("매출.xlsx")
print("매출.xlsx 를 만들었습니다.")

# 7) 다시 읽기
wb2 = load_workbook("매출.xlsx")
ws2 = wb2["매출"]
print("시트 이름:", wb2.sheetnames)
for 월, 금액 in ws2.iter_rows(min_row=2, max_row=ws2.max_row, values_only=True):
    print(월, 금액)
# 마지막 줄의 금액이 숫자가 아니라 '=SUM(B2:B4)' 로 나옵니다.
# openpyxl 은 수식을 계산하지 않기 때문입니다. 계산된 값이 필요하면
# 엑셀로 한 번 열어 저장한 뒤 load_workbook(파일, data_only=True) 로 읽습니다.

# 8) 합계를 파이썬에서 직접 구해 값으로 넣기 — 수식이 필요 없을 때
합계 = sum(금액 for _, 금액 in 매출)
ws2["B" + str(ws2.max_row)] = 합계
wb2.save("매출_값.xlsx")
print("합계:", format(합계, ","), "원")
