본문 바로가기

개인공부/python

나 혼자 하는 프로젝트 3탄 - 업무자동화(RPA) 엑셀 1장 - 엑셀 파일 만들고 sheet 생성 및 값 입력하기

RPA란, Robotic Process Automation 의 약자로 자동적으로 정해진 프로세스에 따라 처리하는 걸 의미한다.

흔히 단순반복작업에 적용해서 많이 사용하는데, 가장 대표적으로 이름표(또는 명찰) 만들기 라던가, 주소록을 가지고 우편물을 만들때 자동으로 주소를 입력해 주는 기능을 만드는 거라고 생각하면 쉽다.

업무자동화의 장점은 수행 시간의 단축이다.

그리고 가장 큰 장점은 컴퓨터가 업무를 수행할 시간에, 사람은 다른 일을 할 수 있다는 것이다.

 

업무자동화를 위해 가장 먼저 사용자가 해야할 일은 자동화 스크립트를 작성하는 것이다.

이는 컴퓨터가 정해진 순서에 따라 작업을 할 수 있게 해준다.

 

1. python 으로 excel 파일 만들기

 

이제 VS CODE 프로그램을 켜서 추가 라이브러리를 설치해 주어야 한다.

pip install openpyxl

코드내에서 openpyxl 라이브러리를 불러와 사용해 보자.

기본적인 동작들을 살펴보면 Workbook()을 통해 새 워크북을 만들 수 있고

title 은 파일의 제목이 아닌 sheet의 이름이 되며, save()로 저장, close()로 파일을 닫을 수 있다.

이대로 실행을 해보면

코드에서 작성한 내용들이 엑셀 파일에 잘 적용된 모습을 볼 수 있다.

Sheet를 생성할때 따로 title=""로 이름을 작성해 주어도 되지만, 처음 creat_sheet()에 전달값으로 바로 작성하여도 된다. 또한 index값을 전달하여 해당 시트의 생성 위치를 지정해 줄 수있다.

이렇게 생성된 sheet들은 처음 선언된 wb라는 변수에 딕셔너리 형태로 저장되며, print()문을 통해 확인 가능하다.

Sheet를 복사하는 방법은 copy_worksheet()를 사용하면 된다. 이때 전달값은 복사할 대상의 sheet 명이 된다.

위에서 new_ws라는 변수에 "mysheet"를 할당해 두었기에, 해당 변수를 전달값으로 사용하면 엑셀 파일에 새로운 sheet가 복사되어 생성된다.

파일을 생성할 때, 각 셀에 값을 입력해 줄 수 있다.

셀에 입력된 값을 받아오려면 .value를 사용하면 된다. 이때 해당 셀에 값이 없다면 None을 반환한다.

또한 해당 행열 정보를 직접 입력하여 그 값을 확인하는 방법도 있다.

반대로 value값을 직접 전달하는 방법도 있으며, 이렇게 전달한 값을 특정 변수로 선언하는 것도 가능하다.

물론 해당 변수는 객체로 저장되기에, value를 통해 값을 확인하여야 한다.

행열 좌표를 사용하는 이유는, 코드로 관리하기 편하기 때문이다.

코드를 통해 왜 행열좌표를 사용해야 하는지 알아보면

편의를 위해 random 라이브러리를 불러왔다.

위 코드처럼 for문을 통해 반복적인 작업 할당이 용이해진다. 

총 100개의 임의의 값들을 넣어주었다.

이렇게 index값을 지정해 주면, 총 100개 (row10 x column 10)의 셀에 값을 채워주게 되는데, 이렇게 보면 해당 이중 for문의 작동 순서를 확인 가능하다.

for y 가 먼저 작동하여 각 열(column)에 먼저 값을 10번 입력한 뒤에, 다음 행(row)로 이동한 모습이다.