본문 바로가기

개인공부/python

나 혼자 하는 프로젝트 3탄 - 업무자동화(RPA) 엑셀 3장 - 값 찾기, 행열 삽입/삭제/이동

이제 작성된 엑셀 파일에서 원하는 정보를 찾는 작업을 해보도록 하자.

가장 기초적인 방법은 if문을 사용해서 해당하는 조건의 데이터를 찾는 것이다.

이는 엑셀 자체에서도 조건부 서식이나, 따로 if함수로 찾을 수 있으며, 필터 기능에서도 조건을 사용하여 검색 가능하다.

지난 시간에 만들어둔 sample4.xlsx

VS CODE로 돌아와 파일을 불러오는 것부터 시작하자.

실제 10명의 데이터만 존재하기에, 눈으로도 찾을 수 있다.

첫번째 줄이 문자형 이기 때문에 for문의 시작위치를 min_row=2 로 설정해 주고 if문을 작성해 주어야 한다.

역시 오류없이 한번에 찾아내 주었다. 조건을 변경하여 복수의 학생들도 찾을 수 있는지 확인해 보았다.

0보다 큰 경우는 따로 설정해 주지 않아도 된다.

가독성을 위해 따로 for문으로 작성하였지만, 위 for문에 elif로 작성해 주어도 문제 없다.

 

만약 과목명이 변경된 경우, 해당 데이터를 급하게 수정해야 한다면 어떤 코드를 사용해야 할까?

우리는 한 행의 정보가 필요하기 때문에 iter_rows()를 사용한다.

이때에는 과목명의 위치를 알기때문에 max_row=1 로 해주어 1번째 행만 확인하게 해준다.

다시 이 첫번째 행을 for문을 통해 돌게 되는데, value 값이 "영어" 라면 "컴퓨터"로 수정해 주도록 코드를 작성해 주었다.

이제 새로 저장된 sample_modifiex.xlsx 파일을 열어 확인해 보자.

영어 과목이 컴퓨터로 잘 변경 되었다!

 

주어진 데이터값 뿐만 아니라, 행과 열도 추가하고 삭제 할 수 있다.

각각 insert_rows 와 insert_cols 를 사용행 행과 열을 추가할 수 있다.

기존 파일에 해당 행과 열이 삽입(insert)된 모습

엑셀 프로그램에서 삽입하는 것처럼 삽입이 실행된 열과 행의 내용들은 아래와 좌측으로 밀려난다.

또한 두번째 인수를 전달하여 삽입되는 행과 열의 줄수도 지정 가능하다.

insert 와 반대로 delete도 가능하며, 당연히 한번에 여러 행과 열도 삭제 가능하다.

 

move_range()를 활용하면, 해당 범위의 셀 내용을 특정 위치로 이동 시키는게 가능하다.

이때 이동할 좌표는 rows=와 cols=를 이용해 전달한다.

이동 좌표값을 음수로 전달할 경우, 각 위쪽/왼쪽으로 이동하게 되며, 이때 데이터가 있으면 덮어쓰게 된다.