inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

[부록] EXE파일 만들어 배포하기

exe 배포 파일 코드 작동 안함

해결된 질문

322

이형주

작성한 질문수 3

1

안녕하십니까 항상 도움 많이 받고 있습니다.

강의를 들으면서 아래와 같이 코드를 작성하였고(정상 작동함)

배포 파일을 만들어서 실행하여 보니, 특성 코드가 작동이 안됩니다.

 

import tkinter as tk

from tkinter import filedialog

import win32com.client as win32

from pyhwpx import Hwp

hwp = Hwp()

excel = win32.gencache.EnsureDispatch("Excel.Application")

excel.Visible = False

# 한/글 파일 불러오기

def open_hwp_file():

file_path = filedialog.askopenfilename(initialdir="C:/", title="Select HWP File", filetypes=(("HWP files", "*.hwp"), ("all files", "*.*")))

if file_path:

hwp.Open(file_path)

# 엑셀 파일 불러오기

def open_excel_file():

file_path = filedialog.askopenfilename(initialdir="C:/", title="Select Excel File", filetypes=(("Excel files", "*.xlsx;*.xlsm"), ("all files", "*.*")))

if file_path:

wb = excel.Workbooks.Open(file_path)

def process_excel():

wb = excel.ActiveWorkbook # 불러온 엑셀파일을 wb로 지정

ws = wb.Worksheets(3) # wb의 3번째 시트를 ws로 지정

xlsx_values = [list(i) for i in ws.UsedRange()]

for idx, val in enumerate(xlsx_values):

if idx:

xlsx_values[idx][0] = xlsx_values[idx][0].strftime("%Y. %#m. %#d.")

for idx, val in enumerate(xlsx_values[1:]): # hwp.get_field_list()로 삽입된 필드명 확인 후, 상황에 맞게 아래 코드의 필드명 수정

hwp.PutFieldText(f"보도일자{{{{{idx}}}}}\x02기사1{{{{{idx}}}}}\x02기사2{{{{{idx}}}}}\x02기사3{{{{{idx}}}}}\x02기사4{{{{{idx}}}}}\x02기사5{{{{{idx}}}}}\x02기사6{{{{{idx}}}}}\x02기사7{{{{{idx}}}}}\x02기사8{{{{{idx}}}}}\x02기사9{{{{{idx}}}}}\x02기사10{{{{{idx}}}}}\x02기사11{{{{{idx}}}}}\x02기사12{{{{{idx}}}}}\x02기사13{{{{{idx}}}}}\x02기사14{{{{{idx}}}}}\x02기사15{{{{{idx}}}}}\x02기사16{{{{{idx}}}}}\x02기사17{{{{{idx}}}}}\x02기사18{{{{{idx}}}}}\x02기사19{{{{{idx}}}}}\x02기사20{{{{{idx}}}}}\x02기사21{{{{{idx}}}}}\x02기사22{{{{{idx}}}}}\x02기사23{{{{{idx}}}}}\x02기사24{{{{{idx}}}}}\x02기사25{{{{{idx}}}}}\x02기사26{{{{{idx}}}}}\x02기사27{{{{{idx}}}}}\x02기사28{{{{{idx}}}}}\x02기사29{{{{{idx}}}}}\x02기사30{{{{{idx}}}}}", "\x02".join(val))

def save_as():

hwp.save_as("보도자료 배포용(취합본).hwp")

root = tk.Tk()

root.title("보도자료 취합(배포용)")

button_style = {"font": ("Arial", 15), "padx": 20, "pady": 10}

open_hwp_button = tk.Button(root, text="한글) 파일 열기", command=open_hwp_file, **button_style)

open_hwp_button.pack()

open_excel_button = tk.Button(root, text="엑셀) 파일 열기", command=open_excel_file, **button_style)

open_excel_button.pack()

process_excel_button = tk.Button(root, text=" 취합 하기 ", command=process_excel, fg="blue", font=("Arial", 15, "bold"), padx=20, pady=10)

process_excel_button.pack()

process_excel_button = tk.Button(root, text="다른 이름 저장", command=save_as, ** button_style)

process_excel_button.pack()

root.mainloop()

 

위 코드에서 " 취합하기" 버튼을 누르면 엑셀에 있는 값들이 한글 문서 필드로 입력이 안됩니다. (아무 변화 없음)

* 파일 열기나 다른 이름으로 저장하는 버튼을 누르면 정상 작동합니다.

 

취합하는 것만 안되는 이유가 뭘까요?

 

항상 친절히 답변 남겨 주셔서 너무 감사드립니다.

 

python 한컴오피스

답변 1

1

일코

형주님 안녕하세요?

보통은 exe컴파일 전에 잘 실행됐다면 후에도 잘 실행되어야 합니다.

간혹 날짜서식이 있는 엑셀문서와 연동하는 경우에 임포트에러가 날 때가 있는데,
엑셀문서도 잘 불러와진다고 하니 그 문제는 아닌 것 같습니다.

 

형주님 보여주신 코드에 맞게 예제문서를 만들고
컴파일해서 실행해봤는데, 잘 삽입되기는 하거든요..

image

엑셀파일은 아래와 같이 만들었고

image

한/글 파일은 아래와 같이 만들었는데요.

image

혹시 괜찮으시다면, 오류재현을 할 수 있게 엑셀파일이랑 한/글 파일을
제 메일로 한 번 보내주시면 테스트해보고 방법을 알려드리고 싶은데요.
martinii.fun@지메일로 예제문서를 한 번 보내주세요^^

 

팁>

넘 예쁘게 GUI를 잘 짜셨네요^^
근데 GUI 종료시에 엑셀문서를 닫고 엑셀프로그램을 종료하는 코드를 꼭 넣어주셔야 해요ㅜ
상황에 따라서는 한/글도 종료해 주셔야 하고요.
안그러면 백그라운드 프로세스로 해당 문서가 계속 열려 있게 돼요ㅜㅜㅜ

섹션7과 같은 수학 수식을 백지에서 시작할 때 어떻게 만들 수 있을까요?

0

76

1

hwp 병렬 작업시 클립보드 충돌문제

0

59

1

본문을 각주로 내리는 법

1

93

1

한글 자동화 삽도 삽입!!

1

385

2

한글 표 내부 위치 찾는 코드좀 알려주세요 ㅠㅠ

1

233

2

빈 문서를 새로 열때는 팝업이 안나오는데 기존 문서를 열면 팝업이 나옵니다

1

120

2

사무실 컴퓨터ㅠ

0

97

2

글자입력 여러번 실행기

0

69

1

현재 커서 문단에 아무런 내용이 없는지 확인하기

1

103

1

특정 스타일을 찾아 이동하는 방법

1

164

2

한/글 파일 open 시 '상위 버전에서...' 메세지 안 뜨게 하는 방법?

1

1120

1

win32com 으로 hwp 문자열 검색하기 문의

1

223

2

[응용] 엑셀문서 값을 필드에 입력하기 질

1

123

1

표 병합하기 관련

0

143

0

메타태그 삽입 자동화

0

191

1

스크립트 매크로 초기화 하고 싶습니다.

1

272

2

한글 창이 여러 개 존재할 때 pyhwpx 모듈로 접근하는 방법을 알고 싶습니다.

1

271

1

표안의 특정 필드에 있는 이미지를 복사하여 한글 외부에 저장하기

1

277

2

스타일 싹 다 지우고 바탕글로 통일하는 방법 문의드립니다.

1

285

0

하위의 여러 폴더 중 특정폴더의 사진만 추출하기

1

346

2

한글 수식을 자동으로 넣는 코드를 만들었는데, 수식 사이의 간격이 계속 벌어집니다.

1

666

1

보유 특허 검색 페이지에서 검색이 되지 않습니다.

1

140

1

hwp 페이지별 분할 저장하는 코드 관련 문의

0

451

0

한글 문서에 사용된 폰트명 추출

1

647

1