강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

histar76님의 프로필 이미지
histar76

작성한 질문수

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

질문을 남겨주세요.

표 병합하기 관련

작성

·

97

0

각 팀에서 받은 한글파일에는 표만 있어요.

그 표를 일단 하나의 파일로 합치는데는 성공했어요.

그런데 그 표들이 떨어져 있어서 하나로 병합하고 싶은데

찾아보니까 강사님이 유튜브에도 올려놓은 걸 찾았어요

아래와 같은 코드였어요.

while True:
    if not hwp.TableMergeTable():
        break

 그런데 이걸 그냥 만들어진 코드 마지막에 붙여넣기만 하면 되는거 아닌가요?

잘 안되어서 질문드립니다.

 

제가 만든 코드는

import win32com.client as win32
import tkinter as tk
from tkinter import filedialog

# 1. 파일 선택 팝업
root = tk.Tk()
root.withdraw()  # Tk 창 숨기기

file_paths = filedialog.askopenfilenames(
    title="병합할 한글 파일을 모두 선택하세요",
    filetypes=[("HWP/HWPX Files", "*.hwp *.hwpx")]
)

if not file_paths:
    print("파일을 선택하지 않았습니다. 프로그램을 종료합니다.")
    exit()

# 2. 저장 위치 선택 팝업
save_path = filedialog.asksaveasfilename(
    title="합쳐진 파일을 어디에 저장할지 선택하세요",
    defaultextension=".hwp",
    filetypes=[("HWP Files", "*.hwp"), ("HWPX Files", "*.hwpx")]
)

if not save_path:
    print("저장 경로를 선택하지 않았습니다. 프로그램을 종료합니다.")
    exit()

print(f"선택한 파일들: {file_paths}")
print(f"저장 경로: {save_path}")

# 3. 한글 오토메이션으로 파일 병합
hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")
hwp.XHwpWindows.Item(0).Visible = True

# 새 문서 생성
hwp.Run("FileNew")

for idx, file_path in enumerate(file_paths):
    try:
        # 첫 파일은 그냥 열려 있으니 건너뜀
        if idx == 0:
            hwp.Open(file_path)
        else:
            # 커서를 문서 끝으로 이동
            hwp.Run("move_doc_end=True")
            # 파일 삽입
            hwp.HAction.GetDefault("InsertFile", hwp.HParameterSet.HInsertFile.HSet)
            hwp.HParameterSet.HInsertFile.filename = file_path
            hwp.HParameterSet.HInsertFile.KeepSection = 0  # 구역 유지 안 함
            hwp.HAction.Execute("InsertFile", hwp.HParameterSet.HInsertFile.HSet)
    except Exception as e:
        print(f"[에러] {file_path} 병합 실패: {e}")

# 4. 저장
hwp.SaveAs(save_path)
print(f"모든 파일이 {save_path}로 성공적으로 병합되었습니다!")

hwp.Quit()

입니다. (사실 이것도 ai에게 만들어달라고 해서 만든거에요. 부끄럽습니다...)

위 코드에서 표를 병합하는 코드를 넣으려면 어디에 어떻게 넣어야할까요?

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
histar76님의 프로필 이미지
histar76

작성한 질문수

질문하기