IT/Python

Python 파이썬으로 Excel 다루기 - openpyxl

Uncle D. 2023. 6. 18. 22:51
반응형

파이썬에서 엑셀 파일에 액세스하려면 openpyxl이라는 라이브러리를 사용할 수 있습니다.

이 라이브러리를 사용하면 엑셀 파일에서 읽고 쓸 수 있습니다.

 

openpyxl 사용 예시

아래에 엑셀 파일에 액세스하기 위해 openpyxl을 사용할 수 있는 예가 있습니다.

import openpyxl

# Load the Excel file
workbook = openpyxl.load_workbook('example.xlsx')

# Select the specific sheet you want to work with
sheet = workbook['Sheet1']

# Access cell values
cell_value = sheet['A1'].value
print(cell_value)

# Access cell values using row and column indices
cell_value = sheet.cell(row=1, column=1).value
print(cell_value)

# Iterate over rows
for row in sheet.iter_rows(min_row=1, max_row=3, min_col=1, max_col=3):
    for cell in row:
        print(cell.value)

# Write to a cell
sheet['A2'] = 'Hello, Python!'

# Save the changes to the Excel file
workbook.save('example.xlsx')

 

이 예제에서는 먼저 openpyxl 라이브러리를 가져옵니다.

그런 다음 load_workbook 함수를 사용하여 엑셀 파일을 로드하여 파일 이름을 인수로 제공합니다.

import openpyxl
# Load the Excel file
workbook = openpyxl.load_workbook('example.xlsx')

 

load_workbook 은 기존의 파일을 load 하는 함수이고, 존재하지 않는 파일은 create 를 통해 생성해야 합니다.

아래에 create 하는 코드도 추가합니다. 새로 생성된 workbook 은 저장하기 전까지는 파일이 만들어진 것은 아닙니다.

실제 파일로 save 를 해야 엑셀 파일이 생성됩니다.

# Create a new workbook
workbook = openpyxl.Workbook()

# ....
# 생성된 workbook 을 통해 excel 에 접근하여 작업한다.
# 아직 저장하지 않았으므로 실제 파일은 생성되지 않은 상태이다.
# ....

# Save the workbook
workbook.save('new_file.xlsx')

 

특정 시트의 이름(이 경우 'Sheet1')을 사용하여 액세스할 수 있고 이름을 재지정할 수도 있습니다.

# Select the specific sheet you want to work with
sheet = workbook['Sheet1']

아래와 같이 default worksheet 를 받아 엑세스할 수도 있습니다.

# Access the default worksheet
sheet = workbook.active


셀 값에 액세스하려면 시트['A1'].값 표기법 또는 시트.셀(행, 열).값 표기법을 사용하여 행 및 열 인덱스를 지정할 수 있습니다.

# Access cell values
cell_value = sheet['A1'].value
print(cell_value)
# Access cell values using row and column indices
cell_value = sheet.cell(row=1, column=1).value
print(cell_value)

 

행 또는 열을 반복하거나 반복할 행 및 열의 범위를 지정하는 반복을 사용할 수 있습니다.

# Iterate over rows
for row in sheet.iter_rows(min_row=1, max_row=3, min_col=1, max_col=3):
    for cell in row:
        print(cell.value)


엑셀 파일을 수정하기 위해 특정 셀(sheet['A2'] = 'Hello, Python!')에 값을 할당하는 방법입니다.

# Write to a cell
sheet['A2'] = 'Hello, Python!'

마지막으로, workbook.save() 를 통해 변경 사항을 저장합니다.

# Save the changes to the Excel file
workbook.save('example.xlsx')

 

openpyxl 설치 부터 사용까지

다시 처음으로 openpyxl 를 사용하기 위해서는 library 가 설치되어 있어야 하는데, 이 과정을 하나씩 아래에 추가하겠습니다.

 

1. Installation

python의 package installer인 pip를 이용하여 openpyxl을 설치할 수 있습니다.

명령 프롬프트 또는 단말을 열고 다음 명령어를 실행.

pip install openpyxl

 

2. Import

openpyxl이 설치된 상태라면 파이썬 스크립트로 가져올 수 있고 아래와 같이 import 하여 사용합니다.

import openpyxl

 

3. Read

기존 엑셀 파일의 데이터를 읽기 위해서는 파일 경로를 지정하여 openpyxl.load_workbook() 을 사용할 수 있습니다. 로드되면 특정 워크시트에 액세스하고 셀에서 데이터를 검색할 수 있습니다.

# Load the Excel file
workbook = openpyxl.load_workbook('example.xlsx')

# Access a specific worksheet by name
worksheet = workbook['Sheet1']

# Read data from a cell
cell_value = worksheet['A1'].value

# Print the cell value
print(cell_value)

 

4. Create

새로운 엑셀 파일을 만들기 위해서는 openpyxl.Workbook() 을 사용할 수 있습니다. 워크시트를 추가하고 셀에 데이터를 작성하며 워크북을 저장할 수 있습니다

# Create a new workbook
workbook = openpyxl.Workbook()

# Access the default worksheet
worksheet = workbook.active

# Write data to a cell
worksheet['A1'] = 'Hello, World!'

# Save the workbook
workbook.save('new_file.xlsx')

 

5. Append

openpyxl.append() 는 기존 내용을 덮어쓰지 않고 기존 워크시트에 새 데이터 행을 추가할 때 유용합니다.

import openpyxl

# Load the Excel file
workbook = openpyxl.load_workbook('example.xlsx')

# Access a specific worksheet by name
worksheet = workbook['Sheet1']

# Data to append
new_data = [
    ['John', 'Doe', 'john@example.com'],
    ['Jane', 'Smith', 'jane@example.com'],
    ['Mike', 'Johnson', 'mike@example.com']
]

# Append the data to the worksheet
for row in new_data:
    worksheet.append(row)

# Save the modified workbook
workbook.save('example.xlsx')

 

지금까지 Python 에서 openpyxl 을 사용하는 방법을 살펴보았습니다. 그 외에도 많은 기능이 있습니다.

실제로 사용하면서 익숙해지신다면 더 많은 기능들을 사용하실 수 있을 것 같습니다.

감사합니다.

반응형