본문 바로가기
파이썬/파이썬 스터디

파이썬으로 엑셀 작업하기 - openpyxl

by davi_kr 2023. 5. 12.

목차

    반응형

    데이터 분석에서 엑셀은 강력한 도구로 자리 잡아 왔습니다. 파이썬에서 엑셀 파일을 읽고 쓰는 데 사용할 수 있는 여러 패키지가 있지만, 그 중에서도 openpyxl은 그 기능과 사용법의 쉬움으로 인해 널리 사용되고 있습니다.

    openpyxl이란?

    openpyxl은 파이썬에서 엑셀 2010 이상의 xlsx/xlsm/xltx/xltm 파일을 읽고 쓰는 데 사용되는 라이브러리입니다. 이 라이브러리를 사용하면 파이썬 코드를 통해 엑셀 문서를 생성하고, 데이터를 입력하고, 서식을 지정하고, 그림이나 차트를 추가하는 등의 작업을 할 수 있습니다.

    openpyxl로 할 수 있는 일

    openpyxl은 엑셀 파일을 작업하기 위한 광범위한 기능을 제공합니다. 여기에는 다음과 같은 작업들이 포함됩니다:

    • 엑셀 문서 읽기 및 쓰기
    • 셀에 값 입력하기
    • 셀 서식 지정하기
    • 셀 병합 및 분할하기
    • 행과 열 추가/삭제하기
    • 그림, 차트, 공식 등 추가하기

    이제 이러한 기능들을 어떻게 사용하는지 몇 가지 예를 통해 알아보겠습니다.

    openpyxl 사용 예

    먼저 openpyxl을 사용하기 위해서는 다음과 같이 openpyxl 패키지를 import해야 합니다.

    from openpyxl import Workbook, load_workbook

    1. 엑셀 문서 읽기 및 쓰기

    openpyxl을 사용하면 새로운 엑셀 문서를 생성하거나 기존 문서를 불러올 수 있습니다. 새로운 엑셀 문서를 생성하려면 `Workbook()` 함수를 사용하면 되고, 기존 문서를 불러오려면 `load_workbook()` 함수를 사용하면 됩니다.

     

    # 새로운 엑셀 문서 생성하기 
    wb = Workbook() 
    
    # 기존 엑셀 문서 불러오기 
    wb = load_workbook('example.xlsx')

    2. 셀에 값 입력하기

    엑셀 문서의 셀에 값을 입력하려면 `cell()` 함수를 사용하면 됩니다. 이 함수는 행과 열의 위치를 인수로 받아 해당 위치의 셀을 반환합니다. 그런 다음, 이 셀의 `value` 속성을 설정하여 셀에 값을 입력할 수 있습니다.

     

    ws = wb.active 
    ws.cell(row=1, column=1, value='Hello, openpyxl!')

     

    row=1, column=1은 a행 1열, 즉 a1셀을 의미합니다.

    3. 셀 서식 지정하기

    openpyxl을 사용하면 셀의 서식을 지정하는 것도 가능합니다. 예를 들어, 셀의 테두리를 설정하려면 `Border` 클래스와 `Side` 클래스를 사용할 수 있습니다.

    from openpyxl.styles import Border, Side 
    
    thin_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin')) 
    ws['A1'].border = thin_border

     

    4. 셀 병합 및 분할하기

    `merge_cells()` 함수를 사용하면 지정한 범위의 셀을 병합할 수 있습니다. 반대로, `unmerge_cells()` 함수를 사용하면 병합된 셀을 다시 분할할 수 있습니다.

     

    # 셀 병합하기 
    ws.merge_cells('A1:B2') 
    
    # 셀 분할하기 
    ws.unmerge_cells('A1:B2')

    5. 엑셀 문서 저장하기

    작업이 끝나면 `save()` 함수를 사용하여 엑셀 문서를 저장할 수 있습니다.

    아래처럼 example.xlsx을 넣어주면 이것을 이름으로 해서 파일을 저장해줍니다.

     

    wb.save('example.xlsx')

     

    저장 되는 위치는 현재 경로라서 별도로 경로를 바꿔주고 싶다면, 

     

    wb.save('/Users/davi/Documents/GitHub/python_study/example.xlsx')

    과 같이 경로까지 더 상세하게 잡아주면 됩니다.

     

    그외의 더 자세한 내용은 공식 문서 참조하셔도 좋을 것 같습니다.

    아래 링크는 공식 문서에서 차트 관련 내용이 있는 페이지로 걸어놨습니다.

     

    차트 추가 등 > https://openpyxl.readthedocs.io/en/stable/charts/introduction.html

    반응형

    댓글