programming/Python

파이썬으로 엑셀 파일 생성/쓰기/차트생성/저장하기_[파이썬/엑셀]

Jofresh 2023. 5. 30. 15:47
728x90
반응형

안녕하세요.

조신선입니다.

 

오늘은 파이썬을 활용해서

 

1. 파일을 생성하고

2. 워크시트를 추가하고

3. 데이터를 쓰고

4. 데이틀 활용해서 차트를 생성하고

5. 차트 위치 및 크기를 조정하고

6. 엑셀파일을 저장하는 

 

방법에 대해 포스팅하겠습니다.

 

오늘 사용할 라이브러리는 xlwings 입니다.

 

xlwings는 파이썬과 Microsoft Excel 간의 상호작용을 가능하게 해주는 라이브러리입니다. 이를 사용하여 파이썬에서 Excel 파일을 열고, 데이터를 읽고 쓰며, 매크로를 실행할 수 있습니다. 아래는 xlwings를 사용하여 간단한 예제를 보여드리겠습니다.

먼저, xlwings를 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다:

pip install xlwings

설치를 완료하셨다면, 아래 예제 코드를 참고해서 xlwings  라이브러리를 활용해보세요!

import xlwings as xw

# 엑셀 파일 생성
wb = xw.Book('example.xlsx')  # example.xlsx 파일이 생성됨

# 워크시트 추가 (이름이 "Sheet1"인 워크시트 삭제)
if "Sheet1" in wb.sheets:
    wb.sheets["Sheet1"].delete()

ws = wb.sheets.add('Sheet1')  # 새로운 워크시트 추가

# 데이터 쓰기
ws.range('A1').value = '이름'
ws.range('B1').value = '나이'
ws.range('A2').value = '박우리'
ws.range('B2').value = 30
ws.range('A3').value = '함자영'
ws.range('B3').value = 25

# 차트 생성
chart = ws.charts.add()
chart.set_source_data(ws.range('A1:B3'))
chart.chart_type = 'column_clustered'
chart.name = '나이별 차트'
chart.title = '나이별 데이터'
chart.x_axis.title = '이름'
chart.y_axis.title = '나이'

# 차트 위치 및 크기 조정
chart.top = 'C1'
chart.left = 'E1'
chart.width = 400
chart.height = 300

# 엑셀 파일 저장 및 닫기
wb.save()
wb.close()

# 차트 출력 완료 메시지
print('엑셀 파일 생성 및 차트 작성이 완료되었습니다.')

처음 설명드린 것처럼 파일 생성 / 데이터 입력 / 차트 생성 / 저장까지 진행할 수 있습니다.

 

한가지 예시를 더 볼께요!

import xlwings as xw

# 엑셀 파일 열기
wb = xw.Book('파일경로/파일명.xlsx')
sheet = wb.sheets['시트명']

# B열에 조건부 서식 적용
condition = '서명확인'
fill = xw.utils.rgb_to_int((255, 165, 0))  # 오렌지색
for cell in sheet.range('B:B'):
    if condition in cell.value:
        cell.color = fill

# 변경 사항 저장하고 엑셀 파일 닫기
wb.save()
wb.close()

위 코드는 xlwings를 사용하여 Excel 파일을 열고, B열에서 '서명확인'을 포함하는 셀에 오렌지색으로 조건부 서식을 적용하는 예제입니다. 파일경로/파일명.xlsx 부분을 적절한 Excel 파일의 경로와 파일명으로 변경해주세요. 변경 사항을 저장하고 Excel 파일을 닫는 부분은 wb.save()와 wb.close()를 사용하면 됩니다.

이를 기반으로 필요에 맞게 코드를 수정하여 원하는 작업을 수행할 수 있습니다. xlwings에 대한 더 자세한 사용 방법은 공식 문서를 참고하시기 바랍니다: xlwings 문서.

 

그리고 마지막으로 해당 라이브러리에 존재하는 다양한 함수에 대해서 간략하게 설명드리겠습니다.

xlwings.Book(): Excel 파일을 열고 반환합니다.
xlwings.apps: 현재 열린 Excel 애플리케이션의 목록을 가져옵니다.
xlwings.Range(): Excel 범위를 나타내는 개체를 생성하고 반환합니다.
xlwings.Sheet(): Excel 시트를 나타내는 개체를 생성하고 반환합니다.
xlwings.utils.rgb_to_int(): RGB 컬러를 정수로 변환합니다.
xlwings.utils.int_to_rgb(): 정수를 RGB 컬러로 변환합니다.
xlwings.utils.view(): Excel 파일을 열고 표시합니다.
xlwings.utils.escape(): 문자열에서 엑셀 수식을 이스케이프합니다.
xlwings.utils.unescape(): 이스케이프된 엑셀 수식을 원래 문자열로 변환합니다.
xlwings.utils.get_range_address(): Excel 범위의 주소를 반환합니다.
xlwings.utils.get_column_letter(): 열 번호를 엑셀의 열 문자로 변환합니다.
xlwings.utils.get_column_number(): 엑셀의 열 문자를 열 번호로 변환합니다.
xlwings.utils.get_app() : 현재 활성화된 Excel 애플리케이션을 가져옵니다.
xlwings.utils.get_workbook(): 현재 활성화된 Excel 워크북을 가져옵니다.
xlwings.utils.get_selection(): 현재 선택된 범위를 가져옵니다.

 

 

이상입니다.

 

728x90
반응형