Appia의 IT세상

엑셀[Excel] Win32com 이용하여, 셀 오름차순, 내림차순 정렬하기(Sort) 본문

Python/Python Office 자동화_EXCEL_Outlook

엑셀[Excel] Win32com 이용하여, 셀 오름차순, 내림차순 정렬하기(Sort)

Appia 2021. 5. 20. 05:49
반응형

엑셀[Excel] Win32com 이용하여, 셀 오름차순, 내림차순 정렬하기(Sort)

엑셀[Excel] Win32com 이용하여, 셀 오름차순, 내림차순 정렬하기(Sort)

엑셀을 많은 셀을 바탕으로 다양한 부분들에 대해서 데이터를 활용할 수 있는 도구입니다. 수많은 데이터가 쌓이다 보면 그 데이터에 대한 정리가 필요로 할 때가 있습니다. 그래서 이번 포스팅에서는 엑셀의 셀에 대해서 정렬하는 방법에 대해서 win32com을 이용하여 살펴보도록 하겠습니다. 

 

이번 포스팅을 진행하기 앞에서, 관련된 내용은 Pywin32모듈을 바탕으로 진행됩니다. 따라서 관련된 부분에 대해서 다음 링크의 부분을 활용해야 하기 때문에 Pywin32을 설치 해주시길 바랍니다. 

 

파이썬[Python] 014 Pywin32 설치

 

파이썬[Python] 014 Pywin32 설치

오늘은 pywin32모듈 설치 하는 방법에 대해서 살펴 보겠습니다. 많은 분들이 python을 사용하는 이유 중 하나는 업무에 있어서 반복적이고 지속적인 업무들에 대해 자동화 하기 위해서 사용 하는 분

appia.tistory.com

먼저, 셀을 정렬하기 위해서는 다음과 같은 Method에 대해서 인자하고 있으셔야 합니다. 

Sort(Key1, Order1, Orientation)

Key1의 경우 정렬를 진행할 때, 근거가 되는 셀을 위치를 이야기하고, Order1의 경우 내림차순, 올림차순에 대한 설정입니다. Orietnation의 경우는 Columns 기반으로 정렬할 것인지 Row 기반으로 정렬할 것인지에 대해서 이야기를 합니다. 

속성 Value  설명
Order1 1 오름차순
2 내림차순
Orientation 1 Column
2 Row

그럼 다음 코드를 보면서 살펴보겠습니다. 

import win32com.client

excel = win32com.client.Dispatch("Excel.Application")

excel.Visible = True

workbook = excel.Workbooks.Add()  # WorkBooks 생성

sheet = workbook.Worksheets("Sheet1")


sheet.Range("A1").value = "1"
sheet.Range("A2").value = "6"
sheet.Range("A3").value = "3"
sheet.Range("A4").value = "2"
sheet.Range("A5").value = "4"
sheet.Range("A6").value = "5"
sheet.Range("A7").value = "8"
sheet.Range("A8").value = "7"

sheet.Range("B1").value = "TEST_A"
sheet.Range("B2").value = "TEST_F"
sheet.Range("B3").value = "TEST_C"
sheet.Range("B4").value = "TEST_D"
sheet.Range("B5").value = "TEST_V"
sheet.Range("B6").value = "TEST_F"
sheet.Range("B7").value = "TEST_X"
sheet.Range("B8").value = "TEST_H"

sheet.Columns("A:B").Sort(Key1=sheet.Range("A1"),Order1=2, Orientation=2)

위에서 보이는 바와 같이 A, B Column에 각 데이터들을 입력하게 됩니다. 이 부분을 토대로 정렬를 진행하게 됩니다. 그럼 마지막 부분의 라인을 조금 더 살펴보도록 하겠습니다. 

sheet.Columns("A:B").Sort(Key1=sheet.Range("A1"),Order1=2, Orientation=2)

위부분은 바로 정렬이 이루어지는 코드 부분입니다. 최초 Columns("시작 : 끝")부분의 영역에 Sort 부분을 적용한 것입니다. 

이 때, Range를 잡는 부분이기 때문에 Rows로 사용하여 관련된 부분에 대해서 적용이 가능합니다. 그리고 각 옵션들을 위에 언급된 속성에 대한 표를 참조하여 입력해주시면 됩니다. 그리고 만약 정렬의 기준 점을 B행으로 바꾸고 싶으시다면, Key1 부분의 선택된 셀을 "B1"으로 바꿔 주시면 됩니다. 

 

위의 예시 코드를 실행하면 다음과 같은 결과가 나타납니다.

예시 실행결과 

 

이와 같은 방식으로 셀을 오름차순 또는 내림차순으로 정렬할 수 있습니다. 

파이썬 [Python] win32com 이용하여, 엑셀(Excel)에서 셀의 데이터 타입에 따른 셀의 색 변경하기

 

파이썬 [Python] win32com 이용하여, 엑셀(Excel)에서 셀의 데이터 타입에 따른 셀의 색 변경하기

파이썬 [Python] win32com 이용하여, 엑셀(Excel)에서 셀의 데이터 타입에 따른 셀의 색 변경하기 앞선 포스팅에서는 셀의 값이 입력되지 않은 공간에 색이 변경하는 부분에 대해서 포스팅을

appia.tistory.com

이번 포스팅에서는 엑셀[Excel] Win32com 이용하여, 셀 오름차순, 내림차순 정렬하기(Sort)라는 주제로 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments