ChatGPT PDF Table to Excel 파이프라인 만들기

ChatGPT PDF Table to Excel 파이프라인 만들기

ChatGPT PDF Table to Excel 파이프라인 만들기

매주 반복되는 PDF 표 복사 노동 끝내기

오늘 만들 것
매주 반복되는 PDF 표 복사 노동 끝내기

회사에서 매주 쏟아지는 PDF 보고서에서 표만 골라 엑셀로 옮기는 작업, 한 번쯤은 해보셨을 겁니다. 하나씩 긁어다 붙여넣다 보면 손목도 아프고, 오타도 생기고, 정리한 뒤에 다시 맞춰보는 시간까지 꽤 길어지죠. 그래서 이 작업을 ChatGPT와 파이썬 라이브러리 하나로 5분 만에 끝내는 자동화 파이프라인으로 정리해봤습니다.

간단한 준비물 확인하기

간단한 준비물 확인하기

ChatGPT 유료 버전이나 API 키 하나만 있으면 충분합니다. 파이썬을 잘 몰라도 크게 겁먹을 필요는 없습니다. ChatGPT가 시키는 대로 코드를 복사해서 붙여넣는 흐름으로도 충분히 따라갈 수 있으니까요.

자동 변환 파이프라인 직접 만들기

자동 변환 파이프라인 직접 만들기

1
PDF 파일에서 텍스트와 표 영역 추출하기
AI에게 보낸 프롬프트
PDF 파일 경로를 입력받아서 안에 있는 텍스트와 테이블 데이터를 파싱하는 파이썬 스크립트를 작성해줘. 라이브러리는 pdfplumber를 사용하고, 텍스트가 깨지지 않게 깔끔하게 추출해서 콘솔에 출력하는 구조로 만들어줘. 파일은 main.py 하나로 시작하자.

처음부터 완벽한 결과를 만들려고 하면 오히려 손이 굳기 쉽습니다. 그래서 먼저 PDF 파일에서 표 영역을 제대로 긁어오는지 확인하는 기초 작업부터 시작하는 편이 좋습니다. pdfplumber는 PDF 내부 구조를 꽤 정밀하게 뜯어볼 수 있어서 표 데이터를 뽑아내는 데 유용합니다. 복잡한 설정 없이도 몇 줄 코드만으로 표의 윤곽을 잡을 수 있거든요.

파이썬 파일을 만들고 코드를 실행해보면 PDF 속 표 데이터가 터미널에 텍스트 형태로 출력되는 걸 볼 수 있습니다. 아직은 줄이 삐뚤빼뚤하고 읽기 불편할 수 있지만, 이 단계가 제대로 돌아가면 다음 단계로 넘어갈 수 있습니다.

2
추출한 데이터를 ChatGPT API로 깔끔한 JSON 포맷으로 정리하기
AI에게 보낸 프롬프트
pdfplumber로 추출한 원본 텍스트 데이터 중에서 표 형식으로 된 부분만 골라내고 싶어. ChatGPT API를 호출해서 이 텍스트를 받아서 정밀한 JSON 배열 형태로 변환해주는 함수를 main.py에 추가해줘. 각 열(Column)의 이름과 값들이 명확하게 매칭되도록 스키마를 설계해줘.

PDF에서 표를 그대로 긁어오면 행이 밀리거나 빈칸이 생겨서 보기 좋지 않은 경우가 많습니다. 그래서 이 단계에서는 ChatGPT의 문맥 이해 능력을 빌려 데이터를 깔끔한 JSON 형태로 다시 정렬하는 로직을 붙입니다. 텍스트 사이에 숨어 있는 표의 구조를 AI가 알아서 짚어내도록 만드는 것이 포인트입니다.

API 응답 결과를 받아보면, 아까 흐트러져 있던 지저분한 텍스트 행과 열이 정갈한 JSON 객체 배열로 정리되어 나옵니다. 이제 이 가공된 데이터를 엑셀 파일로 내보내기만 하면 됩니다.

3
pandas를 연동해서 최종 Excel 파일로 내보내기
AI에게 보낸 프롬프트
정리된 JSON 데이터를 pandas DataFrame으로 변환하고, output.xlsx 파일로 저장하는 코드를 완성해줘. 표의 헤더 스타일에 볼드 처리를 하고, 열 너비가 데이터 길이에 맞게 자동으로 조정되도록 openpyxl 스타일 옵션도 넣어줘.

가공이 끝난 데이터를 실무에서 바로 열어볼 수 있도록 Excel 파일로 내보내는 단계입니다. pandas와 openpyxl을 조합하면 클릭 한 번으로 꽤 보기 좋은 엑셀 시트를 만들 수 있습니다. 수작업으로 열 너비를 늘리거나 제목 행을 진하게 칠하는 작업도 줄어듭니다.

지정한 폴더를 확인해보면 방금 돌린 PDF의 표가 그대로 들어간 깔끔한 Excel 파일이 새로 생성된 것을 볼 수 있습니다. 오타나 누락 없이 정확한 수치 데이터가 시트에 정리되어 들어갑니다.

여기서 막히면

  • 현상: 실행했더니 ModuleNotFoundError: No module named 'pdfplumber' 같은 빨간 글씨가 터미널에 뜹니다.
    원인: 로컬 환경에 필요한 외부 라이브러리가 아직 설치되지 않았기 때문에 생기는 문제입니다.
    해결: 터미널에 'pip install pdfplumber pandas openpyxl' 명령어를 입력하고 설치가 끝날 때까지 기다리면 됩니다.
  • 현상: PDF 내부에 이미지 형태로 들어있는 표는 텍스트 추출이 되지 않고 빈 값으로 나옵니다.
    원인: pdfplumber는 기본적으로 글자가 살아 있는 PDF 문서를 읽는 도구라서 스캔한 파일은 인식하지 못합니다.
    해결: 이런 경우에는 이미지에서 글자를 추출하는 OCR 도구를 연동하거나, ChatGPT 창에 이미지 파일 자체를 올려서 엑셀로 정리해달라고 직접 요청하는 방식이 더 편합니다.
  • 현상: 생성된 Excel 파일을 열었더니 한글 데이터가 이상한 글자로 깨져 보입니다.
    원인: 텍스트 인코딩 설정이 꼬였거나 엑셀 기본값과 맞지 않아서 생기는 현상입니다.
    해결: 파이썬에서 Excel 파일(.xlsx)로 저장할 때는 보통 잘 깨지지 않습니다. 다만 CSV 파일로 추출한다면 'encoding="utf-8-sig"' 옵션을 꼭 넘겨줘야 한글이 정상적으로 보입니다.

다음에 붙여볼 것

한 걸음 더

이번에 만든 기본 파이프라인에 폴더 감시 기능(watchdog)을 얹어보면 더 재미있습니다. 특정 폴더에 PDF 보고서를 넣기만 하면 자동으로 감지해서 Excel로 뽑아내는 무인 파이프라인으로 발전할 수 있거든요. 다음 편에서는 이 폴더 감시 자동화 흐름을 이어서 연결해보겠습니다.

관련 검색어

  • 🔍 ChatGPT 사용법
  • 🔍 ChatGPT 비교
  • 🔍 PDF Table Extractor 사용법
  • 🔍 PDF Table Extractor 비교
  • 🔍 Excel 변환 사용법
  • 🔍 Excel 변환 비교

댓글 쓰기

다음 이전