본문 바로가기

코딩/업무자동화

[파이썬/업무자동화] 엑셀 시트별 분리 저장 - 1 (필요 사항 정리)

반응형

 

1편: 2021.03.03 - [코딩/Python] - [Python/파이썬] 엑셀 시트별 분리 저장 - 1 (필요 사항 정리)

2편 : 2021.03.04 - [코딩/Python] - [Python/파이썬] 엑셀 시트별 분리 저장 - 2

3편 : 2021.03.05 - [코딩/Python] - [Python/파이썬] 엑셀 시트별 분리 저장 - 3

4편 : 2021.03.05 - [코딩/Python] - [Python/파이썬] 엑셀 시트별 분리 저장 - 코드 및 테스트 양식


  회사에서 업무를 하는 도중 자동화가 가능할 것 같아 시도해보는 내용

엑셀 자동화를 하고 싶어서 openpyxl 을 공부했고 openpyxl 모듈을 사용해서 수백개 엑셀파일(.xlsx)의 각 시트에서 필요한 부분만 분리하는 프로그램을 코딩해보고자 했다.

 

일단 내가 필요한 프로그램을 구현하기 위해 필요한 정보를 정리해보았다.

 

1. 같은 폴더에 수백개 엑셀파일(.xlsx)가 있으며, 한번에 처리되어야 함.

 

해당 글을 쓰기 위해 'test'라는 폴더에 4개의 엑셀파일을 임의로 생성하여 작성 함.

 

<test 내 폴더 - 분리 대상 >

 

2. 각 '상품분류' 엑셀파일의 시트 목록은 기본적으로 아래와 같다.

 

Total, History, 표지, 각 상품에 대한 시트(엑셀 파일별로 '상품' 시트 개수는 다를 수 있음)

또한, Total, History 시트의 경우 파일마다 대소문자 통일이 안되어있는 경우가 있다.

ex) TOTAL, HISTORY, total ,history

<상품분류 엑셀파일 구성시트>

 

3. 각 '상품'시트의 내부 형식은 아래와 같다.

 

'A1'셀에 모델명, 파일버전, 상품코드 등의 정보가 기록되어있다.(아래 이미지는 임의로 작성한 부분)

< 각 상품 시트에 대한 내용 >

 

4. 'A1'셀의 production code를 각 시트명, 파일명을 변경하여 해당 부분만 분리하는 코드를 작성한다.

 

ex) 위 이미지가 '상품1'에 대한 시트라면 '2134-1321-AA'라는 시트를 가진 엑셀파일이 새로 생성된다.

마찬가지로 다른 상품시트의 'A1'셀 정보를 활용해 각 코드에 맞는 엑셀파일이 생성 됨.

실제 코드는 모두 2로 시작하며 총 12자리 문자열이다.

 

 

5. 파이썬 모듈을 os 모듈과 openpyxl 모듈을 활용한다.

 

 

코드 구현 및 상세 설명은 다음 편부터 정리 예정

728x90