엑셀 자동화 실전 예제: PyAutoGUI로 원시데이터 자동 저장하기

엑셀원시데이터 자동저장


엑셀 자동화, 어디까지 해보셨나요?
웹사이트에서 엑셀 데이터를 일일이 다운로드하고 저장하는 반복 업무, 이제는 파이썬을 활용해 자동으로 처리해보세요.
특히 PyAutoGUI 라이브러리를 이용하면, 피벗테이블 및 차트의 원본데이터를 다운로드하는데 있어 마우스 클릭이나 키보드 입력까지 자동화할 수 있습니다.


🖱 엑셀 자동화에 PyAutoGUI가 필요한 이유

엑셀 자동화에서 가장 까다로운 부분은 '데이터 수집'입니다.
정해진 위치에서 엑셀 파일을 다운로드하고, 특정 폴더에 저장하는 작업은 자동화의 첫 걸음이죠.

PyAutoGUI는 이러한 작업을 키보드 입력과 마우스 조작만으로 처리하게 해주는 도구입니다.
즉, 사람이 클릭하는 모든 행동을 코드로 재현할 수 있는 강력한 엑셀 자동화 기술입니다.


📂 엑셀 원시데이터 자동 저장 – 전체 흐름

엑셀 자동화 절차

  1. 원본데이터 다운로드 사이트 자동 접속

  2. 조회조건 설정 및 다운로드 버튼으로 이동

  3. Enter → 저장 창 열기

  4. 저장 경로 입력 (사전정의)

  5. Alt+S로 저장 실행

  6. 창 닫기까지 자동 수행


🧑‍💻 실전 엑셀 자동화 코드 예시

python
import pyautogui import time import webbrowser # 1. 웹사이트 자동 접속 webbrowser.open("https://www.data.go.kr/data/15114145/standard.do") time.sleep(7) # 2. Tab 키로 다운로드 버튼 이동 pyautogui.press('tab', presses=36) time.sleep(1) # 3. Enter → 저장창 열기 pyautogui.press('enter') time.sleep(2) # 4. 저장 경로 설정 pyautogui.keyDown('shift') pyautogui.press('tab', presses=6) pyautogui.keyUp('shift') time.sleep(1) pyautogui.press('space') pyautogui.write(r'C:\Users\Username\Desktop\자동화폴더') pyautogui.press('enter') # 5. 저장 실행 pyautogui.hotkey('alt', 's') time.sleep(5) # 6. 브라우저 종료 pyautogui.hotkey('alt', 'f4')

⛏ Tip: 위 코드는 엑셀 자동화의 기초 구조로, 사용자의 환경에 맞게 Tab 횟수나 경로를 꼭 조정해야 합니다.


✅ 엑셀 자동화를 현업에 바로 적용하는 법





💡 자동화를 더 스마트하게 만드는 팁

  • time.sleep()을 사용해 각 명령 사이 대기시간 확보

  • Tab 이동 방식을 사용하면 좌표보다 훨씬 안정적인 자동화 가능

  • 브라우저 설정에서 "파일 저장 위치 지정" 기능 반드시 활성화

  • pyautogui.position()으로 클릭 좌표 확인도 가능


✅ 튜토리얼 연습 (지하철 미세먼지 공공데이터)

아래의 미션은 키보드 Key-In 만을 활용해서 엑셀 원시데이터를 컴퓨터에 저장하는 것을 자동화하는 예제입니다.

* 크롬 웹브라우져 기준설명
[Mission1] 공공DATA 포털에 방문해서 "Key-In만으로 전국 지하철 공기 질 측정정보 엑셀 저장" 하기

 

※ 잠깐!!

      저장 시 폴더경로 및 파일명도 Key-In으로 설정할 수 있도록 크롬 브라우저 설정

: 브라우저 우측상단 점 세개 클릭 > 설정 > 다운로드 > 다운로드 전에 각 파일의    저장 위치 확인 활성화

크롬 다운로드시 대화상자 활성화


다운로드 파일저정위치 ON

 

    링크클릭) 전국지하철 공기질 측정정보 표준데이터
    (https://www.data.go.kr/data/15114145/standard.do)

    상기 링크를 클릭해서 아래 화면 엑셀데이터 다운로드를 수동으로 TEST해봅시다.

지하철 공기질 공공DATA


무리없이 잘 되었다면, 이번엔 아래의 미션을 수행해보세요. 다만 중요한 것은 반드시 키보드 Key In 만으로 해 보는 것입니다.

[Mission1] 공공DATA 포털에 방문해서 "Key-In만으로 전국 지하철 공기 질 측정정보 엑셀 저장" 하기

개인 PC의 환경에 따라 다소 다를 수는 있겠지만, 아래와 같은 Key-In Sequence로 해당 데이터 파일을 내 바탕화면에 저장할 수 있습니다.

■ 원시데이터 저장 Key-In Sequence정리 Table

Key In Seq

반드시 상기와 같이 잘 정리할 필요는 없습니다. PyAutoGUI에서 활용되는 명령어 구조가 잘 이해되도록 정리한 Table일 뿐, Key-In SEQ를 시뮬레이션 하면서 그 순서를 A4 용지에 낙서 마냥 끄적여도 상관없습니다.

본 예제는 크롬 브라 우저에서 공공데이터 다운로드 사이트에 접속해서 원시데이터를 Key-in 방식으로 다운로드하는 실습이지만, 대부분의 웹 UI에서는 Key-in만으로도 데이터 파일 저장이 가능합니다.

위 예시처럼 몇 번의 시뮬레이션으로 Key-in 순서를 기록하고, 이를 Python의 PyAutoGUI 라이브러리를 활용해 코딩을 완성하면 원시 데이터 다운로드를 자동화할 수 있게 됩니다.

만약 Key-In만으로는 접근이 불가능하거나 Key-In 회수가 너무 많아서 Count를 하는 것이 불편하다면, 차선책으로 화면의 좌표 또는 끈적여도 사진(PNG이미지)를 확인해서 클릭하게 할 수도 있어요.



[Mission2] 생성형AI를 활용한 파이썬 코딩으로 원시데이터를 원하는 폴더에 저장하기


    링크클릭) 전국지하철 공기질 측정정보 표준데이터
    (https://www.data.go.kr/data/15114145/standard.do)

1. 전국지하철 공기기질 측정정보 공공데이터를 다운로드 받을 수 있는 곳에 접속하기

2. 아래와 같이 파이썬 스크립트 작성을 부탁해 보자


[생성형AI 코딩 프롬프트]

PyAutoGUI를 활용해서 웹사이트에 접속해서 공공data를 다운로드 받을 수 있도록 파이썬 스크립트를 작성해줘!!

===

1. https://www.data.go.kr/data/15114145/standard.do에 접속한다.

2. PyAutoGUI를 활용하여 특정 저장 아이콘으로 이동 / 클릭한다.

3. 2번이 완료된 후 해당 웹사이트를 종료한다


아래와 같은 답변을 얻었다.

생성형AI 답변1

생성형AI 답변1(설명)


PyAutoGUI는 내가 하는 Key-In Sequence그대로 수행을 하는 것이기 때문에 몇가지 명령어만 알면 코딩을 몰라도 상당히 직관적으로 스크립트로 작성할 수 있습니다.

아래는 상기에서 정리한 "Key-In Sequence정리 Table"을 챗GPT에게 던져서 PyAutoGUI 라이브러리를 활용해서 파이썬 코딩을 해 줄 것과 사용된 명령어를 설명해 달라고 주문한 결과입니다.

이 정도 명령어만 알아도 충분합니다. 추가적으로 알고 싶다면, 생성형AI한테 물어보면 된다.

pyautogui명령어


명령어를 사용할 때 앞에 "pyautogui." 가 반복되는 것을 알 수 있다. 파이썬 언어가 가진 문법입니다.

"라이브러리.명령어(명령상세)" 이런 식이죠. 우리의 목표는 잘 모르는데도 불구하고, 생성형AI를 잘 활용해서 완성도를 높이는 것입니다. 자세한 내용을 구체적으로 알려고 하지 맙시다. 그럼에도 불구하고 반복적으로 챗GPT를 활용해서 코딩을 하고, 스크립트를 자주 보고 읽고 하다가 보면, 자연스럽게 익숙해 지면서 알게됩니다. 마치 사람의 언어를 배우는 신생아처럼 말이다. 컴퓨터의 언어도 언어이니깐요.

자 이번에는 최초에 챗GPT가 틀을 짜준 스트립트에 상기 Key-In SEQ를 반영해서 직접 스크립트를 완성해 보도록 합시다.

주석을 보게 되면 어느 부분에 수정이 들어가야 하는지 알 수 있습니다.

추가로 아래는 화면 좌표를 인식해서 더블클릭하는 명령어이다. 한번클릭은 doubleClick 대신에 click으로 쓰면 한번클릭을 실행한다. 좌표는 화면 해상도가 바뀌면 엉뚱한 곳을 클릭하게 되니 유의하기 바랍니다.

더블클릭 명령어


[참고] 현재 마우스 포인트를 기준으로 화면좌표를 확인하는 python 스크립트

: 아래 스크립트를 VS Code에 임의의 python파일을 만들어 붙여넣기하고 실행(Ctrl+F5) 하면 현재 마우스포인트의 좌표를 확인할 수 있다. 실행한 후 VS Code 화면창을 작게 해서 확인하고 싶은 곳에 마우스 커서를 올려 놓으면 좌표확인이 가능하다.

import pyautogui

import time

try:

 while True:

 # 현재 마우스 위치 좌표 가져오기

x, y = pyautogui.position()

 print(f"현재 마우스 위치: x={x}, y={y}")

 time.sleep(0.5) # 0.5초마다 위치를 업데이트 (필요에 따라 조절 가능)

except KeyboardInterrupt:

 print("프로그램이 종료되었습니다.")


좌표확인용 스크립트(python스크립트파일) 다운로드


[완성스크립트]: 전국지하철 공기질 원시데이터 자동저장

자동저장 스크립트(이하생략)

   

상기 전체 스크립트 다운로드 링크

: 지하철 공기질 원시Data 자동저장 Full스크립트 다운로드


상기 스크립트를 VS Code로 Test실행해 보세요. 그리고, 몇번의 에러수정을 통해 자신의 PC환경에서 실행되도록 해보시기 바랍니다. 어렵지 않습니다. 본 과정을 완료하셨다면, 본인만의 업무환경에서 수시로 다운로드하는 과정으로 변경하여 적용하실 수 있으실 겁니다. 

원시데이터를 자동으로 다운로드 받았다면, 그 다음으로 피벗테이블 또는 차트가 생성되어 있는 엑셀 main파일의 원시데이터를 신규 원시데이터로 변경 적용하고 새로고침을 하는 자동화 파일을 실행하면 됩니다. 

피벗,차트 엑셀 원시데이터를 지우고 신규원시데이터로 업데이트하는 자동화 방법은 아래의 함께하면 좋은 글을 확인해 주세요.


📌 마무리 – 엑셀 자동화는 PyAutoGUI로 시작하세요

엑셀 자동화를 고민하고 있다면, PyAutoGUI는 최고의 시작점입니다.
UI 자동화는 복잡하게 느껴지지만, 실제로는 여러분이 하는 행동 그대로 코딩으로 구현하는 것에 불과합니다.

반복 작업은 파이썬에게 맡기고, 전략적인 업무에 집중하세요.
엑셀 자동화, 지금 시작할 수 있습니다.

댓글 쓰기

다음 이전