본문 바로가기

코딩/Python

파이썬, openpyxl(6) 수식작성, 병합, 이미지삽입

반응형
#수식작성, 저장하기
import datetime
from openpyxl import Workbook
wb = Workbook()
ws = wb.active

ws["A1"] = datetime.datetime.today()
ws["A2"] = "=SUM(1,2,3)"

ws["A4"] = 10
ws["A5"] = 20
ws["A6"] = "=average(A4:A5)"

wb.save("./Desktop/코딩공부/sample.xlsx")

from openpyxl import Workbook
wb = Workbook()
ws = wb.active


#수식작성, 불러오기
from openpyxl import load_workbook
wb = load_workbook("./Desktop/코딩공부/sample.xlsx", data_only=True)
# 1)date_only를 표기 안할 경우 계산되지 않은 값이 나옴
# 2)date_onlt를 True라고 해도 앞서 실행된 openpyxl에서는 계산되지 않은 '=sum(1,2,3)'의 값을 넣었고,
# 엑셀을 실행하여 저장을 하고 다시 로드하면 계산된 수식이 됨.

ws = wb.active

for row in ws.values:
    for cell in row:
        print(cell)

        
#병합
ws.merge_cells("B2:D2")
ws["B2"].value = "Merged Cell"

#병합해제
ws.unmerge_cells("B2:D2")

wb.save("./Desktop/코딩공부/sample_merge.xlsx")


#이미지 삽입
from openpyxl import Workbook
from openpyxl.drawing.image import Image
#!pip install Pillow 설치가 필요할 수도

wb = Workbook()
ws = wb.active

img = Image("img.png") #경로설정 필요
ws.add_image(img, "C3")

wb.save("./Desktop/코딩공부/sample_image.xlsx")

 

반응형