openpyxl

¿¢¼¿ÀÌ ¼³Ä¡ µÇ¾î ÀÖÁö ¾Ê¾Æµµ »ç¿ëÀÌ °¡´ÉÇÏ´Ù.
C++¿¡¼­ ¿¢¼¿ ´Ù·ç´Â°Íº¸´Ù ÈξÀ °£´ÜÇÏ´Ù.

1. ÆÄÀÏÀ» »ý¼ºÇؼ­ °£´ÜÇÏ°Ô ÀúÀå
from openpyxl import Workbook
import datetime

wb = Workbook()

# grab the active worksheet
ws = wb.active

# Data can be assigned directly to cells
ws['A1'] = 42

# Rows can also be appended
ws.append([1, 2, 3])
ws.append([4, 5, 6])

# Python types will automatically be converted
ws['A2'] = datetime.datetime.now()

# Save the file
wb.save("sample.xlsx")

¿¢¼¿ ¹®¼­¸¦ »ç¿ëÇϱâ À§ÇØ ¿öÅ©ºÏÀ» ÀÓÆ÷Æ® ÇÑ´Ù.
from openpyxl import Workbook

WorkbookÀ¸·Î »õ·Î¿î ¿öÅ©ºÏÀ» ¸¸µé°í
wb.active·Î ±âº»À¸·Î »ý¼ºµÇ´Â ½ÃÆ®¸¦ ¼±ÅÃÇÑ´Ù.

¼¿¿¡ Á÷Á¢ µ¥ÀÌÅ͸¦ ³Ö´Â´Ù.
ws['A1'] = 42

¸¶Áö¸· ÁÙ µÚ¿¡ Ä®·³ 1, Ä®·³2, Ä®·³3 µ¥ÀÌÅ͸¦ Çà ´ÜÀ§·Î Ãß°¡ÇÑ´Ù.
ws.append([1, 2, 3])

¿¢¼¿·Î ÀúÀåÇÑ´Ù.
wb.save("sample.xlsx")

2. ÆÄÀÏÀ» ·ÎµùÇؼ­ Ãâ·Â
from openpyxl import load_workbook

wb = load_workbook(filename="sample.xlsx", read_only=True)
ws = wb.active

for row in ws.rows:
for cell in row:
print(cell.value)
ÆÄÀÏÀ» ·ÎµùÇϱâ À§ÇØ "load_workbook"À» ÀÓÆ÷Æà ÇÑ´Ù.

¿¢¼¿ ÆÄÀÏÀ» ·ÎµùÇÑ´Ù.
"read_only"¸¦ True·Î ÁÖ¸é Àбâ Àü¿ëÀ¸·Î ¸ðµç ³»¿ëÀ» ÇÑ ¹ø¿¡ °¡Á®¿ÀÁö ¾Ê°í ÆÄÀÏÀ» ÇÑÇ྿ °¡Á®¿Â´Ù.
wb = load_workbook(filename="sample.xlsx", read_only=True)

È°¼ºÈ­µÈ ±âº» ½ÃÆ®¸¦ °¡Á® ¿Â´Ù.
ws = wb.active

¸ðµç ¼¿À» Ž»öÇÑ´Ù.
for row in ws.rows:
    for cell in row:

3. ¼¿ ¿µ¿ª ·Îµù
import openpyxl

book = openpyxl.load_workbook('sample.xlsx')
sheet = book.active
cells = sheet['A1': 'B4']

for c1, c2 in cells:
print("{0:8} {1:8}".format(c1.value, c2.value))
A1¿¡¼­ B4 ¿µ¿ª±îÁö Àоî¿Â´Ù.
¿©·¯ ÇàÀ» ÀÐ¾î ¿À±â ¶§¹®¿¡ read_only´Â FalseÀÌ´Ù.



4. ÁöÁ¤ÇÑ ½ÃÆ® ·Îµù
import openpyxl

book = openpyxl.load_workbook('sample.xlsx')

#sheet = book.get_sheet_by_name("test1")
sheet = book["test1"]

cell = sheet['A1']

print(cell.value)
"test1"À̶ó´Â ½ÃÆ®¸¦ ·ÎµùÇؼ­ A1 ¼¿ÀÇ °ªÀ» Ãâ·ÂÇÑ´Ù.

¾Æ·¡ µÎ°³´Â ½ÃÆ®¸¦ ÁöÁ¤ÇÏ´Â °°Àº ¿ªÇÒÀÇ ¸í·ÉÀÌ´Ù.
sheet = book.get_sheet_by_name("test1")
sheet = book["test1"]

5. ÁöÁ¤ÇÑ ½ÃÆ®·Î ÀúÀå
from openpyxl import Workbook

xlsx = Workbook()

sheet = xlsx.create_sheet("°úÀÏ")
sheet["B2"] = "»ç°ú"

xlsx.save("demo.xlsx")

6. °è»ê½Ä
from openpyxl import Workbook

xlsx = Workbook()

sheet = xlsx.active

rows = (
(10, 1),
(20, 2),
(30, 3),
(40, 4),
(50, 5)
)

for row in rows:
sheet.append(row)

sheet["B6"].value = "=SUM(A1:B5)"

xlsx.save("formulas.xlsx")
A1ºÎÅÍ B5±îÁö ¸ðµÎ ´õÇÑ´Ù.  ¿¢¼¿ÀÇ ¼ö½Äµµ ±×´ë·Î Àû¿ë ÇÒ¼ö ÀÖ´Ù.
sheet["B6"].value = "=SUM(A1:B5)"



ÀÌ¿Ü¿¡µµ ¸¹Áö¸¸ ³ª¸ÓÁö´Â Âü°íÀÇ ¸µÅ©¸¦ ÂüÁ¶ÇÑ´Ù.

Âü°í)
https://openpyxl.readthedocs.io/en/stable/
http://zetcode.com/python/openpyxl/