์์ ์๋ํ
Python์ openpyxl ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด Excel ํ์ผ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์์ฑํ๊ณ ํธ์งํ ์ ์์ต๋๋ค. ๋ฐ๋ณต์ ์ธ ๋ฐ์ดํฐ ์
๋ ฅ, ๋ณด๊ณ ์ ์์ฑ, ๋ฐ์ดํฐ ๋ถ์ ๋ฑ์ ์๋ํํด๋ณด๊ฒ ์ต๋๋ค.
์ค์นํ๊ธฐโ
# openpyxl ์ค์น
pip install openpyxl
# ์ฐจํธ ๊ธฐ๋ฅ๊น์ง ์ฌ์ฉํ๋ ค๋ฉด
pip install openpyxl[charts]
๊ธฐ๋ณธ ์์ โ
์ํฌ๋ถ ์์ฑ ๋ฐ ์ ์ฅโ
from openpyxl import Workbook
# ์ ์ํฌ๋ถ ์์ฑ
wb = Workbook()
# ํ์ฑ ์ํธ ๊ฐ์ ธ์ค๊ธฐ
ws = wb.active
# ์ํธ ์ด๋ฆ ๋ณ๊ฒฝ
ws.title = "๋งค์ถ ๋ฐ์ดํฐ"
# ์
์ ๊ฐ ์ฐ๊ธฐ
ws['A1'] = "์๋
ํ์ธ์"
ws['B1'] = 42
ws['C1'] = 3.14
# ํ์ผ ์ ์ฅ
wb.save('example.xlsx')
๊ธฐ์กด ํ์ผ ์ฝ๊ธฐโ
from openpyxl import load_workbook
# ์์
ํ์ผ ์ด๊ธฐ
wb = load_workbook('example.xlsx')
# ์ํธ ์ด๋ฆ ๋ชฉ๋ก
print(wb.sheetnames) # ['๋งค์ถ ๋ฐ์ดํฐ', 'Sheet2']
# ํน์ ์ํธ ์ ํ
ws = wb['๋งค์ถ ๋ฐ์ดํฐ']
# ๋๋ ํ์ฑ ์ํธ
ws = wb.active
# ์
๊ฐ ์ฝ๊ธฐ
value = ws['A1'].value
print(value)
์ ๋ค๋ฃจ๊ธฐโ
์ ์ ๊ทผ ๋ฐฉ๋ฒโ
# ๋ฐฉ๋ฒ 1: ์
์ขํ ์ฌ์ฉ
ws['A1'] = "์ด๋ฆ"
# ๋ฐฉ๋ฒ 2: row, column ์ธ๋ฑ์ค ์ฌ์ฉ (1๋ถํฐ ์์)
ws.cell(row=1, column=1).value = "์ด๋ฆ"
ws.cell(row=1, column=2).value = "๋์ด"
# ์
๊ฐ ์ฝ๊ธฐ
name = ws['A1'].value
age = ws.cell(row=1, column=2).value
์ฌ๋ฌ ์ ์ ๋ฐ์ดํฐ ์ฐ๊ธฐโ
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# ํ ๋จ์๋ก ๋ฐ์ดํฐ ์ถ๊ฐ
data = [
["์ด๋ฆ", "๋์ด", "์ง์
"],
["๊น์ฒ ์", 30, "๊ฐ๋ฐ์"],
["์ด์ํฌ", 28, "๋์์ด๋"],
["๋ฐ๋ฏผ์", 35, "๊ธฐํ์"]
]
for row in data:
ws.append(row)
wb.save('์ง์๋ช
๋จ.xlsx')
๋ฒ์๋ก ์ ์ฝ๊ธฐโ
# ํน์ ๋ฒ์ ์ฝ๊ธฐ
for row in ws['A1:C4']:
for cell in row:
print(cell.value, end='\t')
print()
# ๋ชจ๋ ํ ์ํ
for row in ws.iter_rows(min_row=2, values_only=True):
print(row)
# ๋ชจ๋ ์ด ์ํ
for col in ws.iter_cols(min_col=1, max_col=3, values_only=True):
print(col)
# ํน์ ๋ฒ์์ ๊ฐ๋ง ๊ฐ์ ธ์ค๊ธฐ
for row in ws.iter_rows(min_row=2, max_row=5, min_col=1, max_col=3, values_only=True):
name, age, job = row
print(f"{name}: {age}์ธ, {job}")