한국GPT협회
home
기관 소개
home

Excel 템플릿에 문서 생성 자동화

태그
생성 일시
2025/02/03 02:23
엑셀은 직장인의 영원한 친구 아니겠습니까.
데이터 분석 뿐만 아니라 일반 문서도 엑셀 템플릿이 정말 많죠.
그 엑셀 템플릿을 자동으로 완성하는 과정을 알아봅니다.
전자세금계산서 정보를 활용하여 거래명세서를 자동으로 만들어 보겠습니다.
전자세금계산서를 발행한 고객으로부터 별도로 거래명세서도 요청을 받을 때가 있습니다.
거의 비슷한 정보인데, 문서 형식이 많이 다르다보니,
단순히 여기서 복사해서 저기에 붙여넣고, 이걸 반복하게 되네요.

자동화의 input, output 정의

자동화를 할 때는 항상 input과 output을 명확하게 정의해 보는 것이 좋습니다.
input은 국세청 홈텍스에서 발행한 전자세금계산서 파일이고,
여기서 정보를 자동으로 인식하고 복사해서,
output인 우리 회사 거래명세서 양식(엑셀 파일)에 적절하게 붙여 넣으면 됩니다.

Input 수집하기

홈텍스 > 전자세금계산서 상세조회
이 메뉴에 들어가면 내가 발행한 전자세금계산서를 조회할 수 있습니다.
그 동안은 항상 출력 눌러서 PDF 파일로 다운 받았습니다.
사람 눈으로 보고 정보 식별하기에는 PDF가 제일 익숙한 방식이라서 그랬었죠.
하지만 자동화를 한다는 목적에서는 PDF는 절대 좋은 포맷이 아닙니다.
콘텐츠가 이미지화가 많이 되버려서 정확한 텍스트 인식이 어려울 수 있습니다.
그게 많이 어렵다면 OCR(광학문자인식) 알고리즘의 도움까지 받아야 하고,
이 과정에서는 필히 오타(오인식) 발생의 위험이 있죠.
홈텍스에 보니 “XML 파일내려받기”가 있네요.
다운 받아서 메모장으로 열어보면 이렇게 텍스트가 잔뜩 들어 있습니다.
공급자의 대표이사 이름은 <NameText>와 </NameText> 사이에 들어있고,
고객사 정보는 <InvoiceParty>와 </InvoiceParty> 사이에 들어있어요.
고객사 정보 중에서도 사업자등록번호는 <InvoiceParty> 하위에 들어있는
<ID>1234567890</ID> 사이에 들어있습니다.
XML은 이런 구조로 만들어져 있어요.
여러 코드가 위계 구조로 섞여 있어서 사람이 직관적으로 보기에는 아주 불편합니다만,
위계 구조가 코드 태그로 명확하게 쓰여져 있어서 파악하기가 좋고,
세부 내용들이 이미지가 아니라 텍스트라서 인식이 정확합니다.

GPT로 자동화 테스트하기

전자세금계산서 XML 파일을 GPT에 업로드하거나
XML 파일의 텍스트 전체를 복사-붙여넣기 해서 GPT에게 입력합니다.
그리고 자동화에 필요한 항목들을 추출시켜봅니다.
XML에 들어있는 <InvoiceParty>, <ID> 등의 태그에 대해서 별도의 설명은 하지 않았습니다.
그럼에도 불구하고 GPT가 필요 정보를 잘 파악했네요.
혹시 잘 못 하면 XML의 태그 정보들에 대해서 추가 설명을 해주면 더 정확해지겠죠.
필요 정보 추출이 끝났으니, 텅 빈 엑셀 거래명세서 템플릿 파일도 업로드 해줍니다.
그리고 프롬프트에서 어떤 추출 정보를 어느 셀에 넣어야 하는지 전부 다 지정을 해줬어요.
엑셀을 처리해야하니 당연히 파이썬이 나와주고요,
이렇게 제대로 된 위치에 딱딱 삽입 해줬네요.
이번에는 XML에서 추출한 정보를 엑셀에 삽입하는 VBA도 코딩해봅니다.
XML에서 필요 정보를 추출하는 건 VBA로 안 되고요, 그건 GPT가 하는거에요.
GPT가 잘 추출한 정보들을 엑셀 거래명세서 템플릿의 각 위치에 삽입하는 것만 VBA로 한거에요.
GPT가 VBA 코드를 다 만들어주면,
엑셀에서 Alt + F11 눌러서 코드 삽입합니다.
그리고 Alt + F8 눌러서 매크로 실행합니다.
이렇게 깔끔하게 잘 삽입해주었네요.
하지만 VBA에는 치명적인 문제가 있어요.
전체적인 업무 프로세스를 보면,
1.
홈텍스에서 XML 파일을 다운로드 받는다
2.
XML 파일을 GPT에 올려서 필요 정보를 추출하고, 이것을 VBA 코드로 작성한다
3.
거래명세서 템플릿 엑셀 파일을 열고 VBA 코드를 삽입하고 실행한다
이렇게 3단계로 진행해야 하네요. GPT 갔다가 다시 엑셀 갔다가 하는 과정이 좀 귀찮습니다.
그리고, 2단계에서 GPT에게 명령 프롬프트도 매번 길고 자세하게 입력해야 하네요.
그래서 GPTs로 만들어 보기로 했어요.

GPTs로 자동화 하기

GPTs 하나 만들어서 여기다가 XML 파일 업로드를 할거에요.
거래명세서 템플릿 엑셀 파일은 GPTs의 지식(Knowledge)에 미리 첨부해두면 될 것 같아요.
업로드 받은 XML 파일을 분석해서 필요 정보 추출하고 거래명세서 템플릿에 넣는 과정은
전부 지침(Instruction)으로 입력해 놓을 생각이에요.
그럼 저는 GPTs 실행하고 아무 말 없이 바로 XML 파일만 업로드 하면 되겠지요.
우선 지침부터 만들었고요.
XML 파일을 입력받으라 했고요,
그로부터 추출해야 할 필요 정보도 다 정해줬고요,
그것 템플릿의 어느 셀에 입력하면 되는지도 다 정해줬어요.
자~ 이제 GPTs를 완성하고,
GPTs 선택해서 아무 말 없이 XML 파일을 업로드 해봅니다.
파이썬 잘 돌아가고,
거래명세서 엑셀 파일을 다운로드 할 수 있게 제공해주네요.
저는 이제 거래명세서를 손으로 작성할 일은 없겠군요 ㅎㅎㅎㅎㅎㅎㅎㅎ
오늘도 슬기로운 AI 생활 하세요~