๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Python/ETC

[Python] ํŒŒ์ด์ฌ openpyxl ์—‘์…€ํŒŒ์ผ ์ฝ๊ธฐ ์“ฐ๊ธฐ :: ๋งˆ์ด์ž๋ชฝ

by ๐ŸŒปโ™š 2019. 1. 5.

Python ์—‘์…€ํŒŒ์ผ ์ฝ๊ธฐ ์“ฐ๊ธฐ

Python์–ธ์–ด๊ฐ€ ์ž๋ฐ”์— ๋น„ํ•ด ์ฝ”๋“œ๊ฐ€ ๊ฐ„๋‹จํ•˜๊ณ  ๋งŽ์ด ์‰ฝ๋‹ค๊ณ  ๊ฐ€์žฅ ํฌ๊ฒŒ ๋Š๊ปด์ง€๋Š” ๋ถ€๋ถ„์ค‘ ํ•˜๋‚˜๊ฐ€ ์—‘์…€ ํŒŒ์ผ ์ฝ๊ณ  ์“ฐ๋Š” ๋ถ€๋ถ„์ด๋‹ค.
๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋‚˜ ์ˆ˜์น˜ํ™•์ธ ๋ฐ ์ •๋ฆฌํ•˜๋Š” ์—…๋ฌด๋Š” ์—‘์…€๋กœ ์ง„ํ–‰์„ ํ•˜๊ฒŒ๋œ๋‹ค.
์ž๋ฐ”๋กœ ์ฝ”๋”ฉํ•ด์„œ ์—‘์…€ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ธ๋•Œ ์—„์ฒญ๋‚œ ์‚ฝ์งˆ์„ ํ•œ๊ฒƒ์œผ๋กœ ๊ธฐ์–ตํ•˜๋Š”๋ฐ.... ํŒŒ์ด์ฌ์œผ๋กœ ์ž‘์—…ํ•˜๋‹ˆ... ์ฝ”๋“œ ๊ธธ์ด๋„ ๊ทธ๋ ‡๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ๋„ ๋งค์šฐ ์‰ฝ๋‹ค.
์ด๋ž˜์„œ ํŒŒ์ด์ฌ, Python ํ•˜๋‚˜๋ณด๋‹ค....
 

ํŒŒ์ด์ฌ์„ ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•ด ์ฑ…์ด ํ•„์š”ํ•˜์‹œ๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ํ™•์ธํ•ด์ฃผ์„ธ์š”!

[Python/๊ธฐ์ดˆ] - [Python] ํŒŒ์ด์ฌ ์ฑ… ์ถ”์ฒœ ๋น„์ „๊ณต์ž ๋ถ€ํ„ฐ ์ „๋ฌธ๊ฐ€ ๊นŒ์ง€~ :: ๋งˆ์ด์ž๋ชฝ

 

 

openpyxl ๋ชจ๋“ˆ ์„ค์น˜

pip instal์„ ํ†ตํ•ด ๋ฐ›๊ฑฐ๋‚˜ PyCharm ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์„ค์ •์—์„œ openpyxl์„ ๋ฐ›์•„์ค€๋‹ค.
pip install openpyxl
 

 

 

 

 

์—‘์…€ ํŒŒ์ผ ์ฝ๊ธฐ

ํŒŒ์ด์ฌ์œผ๋กœ ์ฝ์„ '๊ณผ์ผ.xlsx'ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์คฌ๋‹ค.

 

 
 
load_workbook์„ importํ•˜๊ณ  ํŒŒ์ผ์ด ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฒซ๋ฒˆ์งธ ์ธ์ž๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
load_workbookํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ• ๋•Œ data_only์ธ์ž๋ฅผ True๊ฐ’์„ ์„ค์ •ํ•ด์ค˜์„œ ์—‘์…€์˜ ์ˆ˜์‹์ด ์•„๋‹Œ ์…€๊ฐ’๋งŒ ๋ฐ›์•„์˜ค๋„๋ก ํ•œ๋‹ค.
from openpyxl import load_workbook


#data_only=Ture๋กœ ํ•ด์ค˜์•ผ ์ˆ˜์‹์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ๋ฐ›์•„์˜จ๋‹ค.
load_wb = load_workbook("/Users/Jamong/Desktop/๊ณผ์ผ.xlsx", data_only=True)
#์‹œํŠธ ์ด๋ฆ„์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
load_ws = load_wb['Sheet1']

#์…€ ์ฃผ์†Œ๋กœ ๊ฐ’ ์ถœ๋ ฅ
print(load_ws['A1'].value)

#์…€ ์ขŒํ‘œ๋กœ ๊ฐ’ ์ถœ๋ ฅ
print(load_ws.cell(1,2).value)
 

 

-๊ฒฐ๊ณผ

 

 

 

 

์ง€์ •ํ•œ ์…€๊ฐ’ ์ถœ๋ ฅ

print('\n-----์ง€์ •ํ•œ ์…€ ์ถœ๋ ฅ-----')
get_cells = load_ws['A1':'D2']
for row in get_cells:
        for cell in row:
            print(cell.value)
 

 

-๊ฒฐ๊ณผ

 

 

 

๋ชจ๋“  ํ–‰ ๋‹จ์œ„๋กœ ์ถœ๋ ฅ

print('\n-----๋ชจ๋“  ํ–‰ ๋‹จ์œ„๋กœ ์ถœ๋ ฅ-----')
for row in load_ws.rows:
    print(row)
 

 

-๊ฒฐ๊ณผ

 

 

 

๋ชจ๋“  ์—ด ๋‹จ์œ„๋กœ ์ถœ๋ ฅ

print('\n-----๋ชจ๋“  ์—ด ๋‹จ์œ„๋กœ ์ถœ๋ ฅ-----')
for column in load_ws.columns:
    print(column)
 

 

-๊ฒฐ๊ณผ

 

 

 

๋ชจ๋“  ํ–‰๊ณผ ์—ด ์ถœ๋ ฅ

print('\n-----๋ชจ๋“  ํ–‰๊ณผ ์—ด ์ถœ๋ ฅ-----')
all_values = []
for row in load_ws.rows:
    row_value = []
    for cell in row:
        row_value.append(cell.value)
    all_values.append(row_value)
print(all_values)
 
 
-๊ฒฐ๊ณผ

 

 

 

 

 

์—‘์…€ํŒŒ์ผ ์“ฐ๊ธฐ

์ด๋ฒˆ์—๋Š” ์—‘์…€ํŒŒ์ผ์„ ์“ฐ๋Š” ์ž‘์—…์„ ํ•ด๋ณผ๊ฑฐ๋‹ค.
์…€์ฃผ์†Œ๋กœ ์ž…๋ ฅ์„ ํ•˜๊ณ , ํ–‰ ๋‹จ์œ„๋กœ ์ž…๋ ฅ์„ํ•˜๊ณ ,ํ–‰๊ณผ ์—ด์„ ์ง€์ •ํ•ด์„œ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
์—ด ๋‹จ์œ„๋กœ ์ž…๋ ฅ์„ ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์œ„์น˜์— ๊ฐ’์„ ์ž…๋ ฅํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด์„œ ์ž‘์—…์„ ํ•ด์ฃผ๋ฉด ๋ ๊ฑฐ๋‹ค.
from openpyxl import Workbook

write_wb = Workbook()

#์ด๋ฆ„์ด ์žˆ๋Š” ์‹œํŠธ๋ฅผ ์ƒ์„ฑ
#write_ws = write_wb.create_sheet('์ƒ์„ฑ์‹œํŠธ')

#Sheet1์—๋‹ค ์ž…๋ ฅ
write_ws = write_wb.active
write_ws['A1'] = '์ˆซ์ž'

#ํ–‰ ๋‹จ์œ„๋กœ ์ถ”๊ฐ€
write_ws.append([1,2,3])

#์…€ ๋‹จ์œ„๋กœ ์ถ”๊ฐ€
write_ws.cell(5,5,'5ํ–‰5์—ด')
write_wb.save('/Users/Jamong/Desktop/์ˆซ์ž.xlsx')
 

 

-๊ฒฐ๊ณผ

 

 

์—‘์…€ ์“ฐ๊ณ  ์ฝ๋Š” ์ž‘์—…์€ ์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋๋‚ฌ๋‹ค.

๋‹ค์Œ์—๋Š” ์—‘์…€๋กœ ์ •๋ฆฌ๋œ ๋‚ด์šฉ์„ Database์— insert๋ฅผ ํ•˜๊ฑฐ๋‚˜,

Database์˜ ๋ฐ์ดํ„ฐ๋ฅผ Selectํ•˜์—ฌ ์—‘์…€๋กœ ์“ฐ๋Š”์ž‘์—…์„ ํ•ด ๋ณผ๋ ค๊ณ  ํ•œ๋‹ค.

๋Œ“๊ธ€