728x90
반응형
chatgpt 작성
import tkinter as tk
from tkinter import filedialog, messagebox
import xlwings as xw
import os
# 전역 변수로 파일 목록 저장
selected_files = []
# .xlsx 파일을 .xlsm으로 변환하는 함수
def convert_xlsx_to_xlsm(xlsx_files):
try:
for xlsx_file in xlsx_files:
# xlwings로 엑셀 파일 열기
wb = xw.Book(xlsx_file)
# .xlsm 파일명 설정
xlsm_file = os.path.splitext(xlsx_file)[0] + '.xlsm'
# .xlsm 파일로 저장
wb.save(xlsm_file)
wb.close() # 저장 후 엑셀 파일 닫기
# 성공 메시지
messagebox.showinfo("성공", f"{len(xlsx_files)}개의 파일이 성공적으로 변환되었습니다.")
except Exception as e:
messagebox.showerror("오류", f"파일 변환 중 오류가 발생했습니다: {str(e)}")
# 파일 선택하는 함수
def select_files():
global selected_files
# 여러 개의 .xlsx 파일을 선택
selected_files = filedialog.askopenfilenames(
title="변환할 .xlsx 파일을 선택하세요",
filetypes=[("Excel 파일", "*.xlsx")],
multiple=True
)
# 파일이 선택되었을 때 UI 업데이트
if selected_files:
selected_files_label.config(text=f"{len(selected_files)}개의 파일이 선택되었습니다.")
convert_button.config(state=tk.NORMAL) # 변환 버튼 활성화
else:
selected_files_label.config(text="파일이 선택되지 않았습니다.")
convert_button.config(state=tk.DISABLED) # 변환 버튼 비활성화
# 변환 시작 함수
def start_conversion():
if selected_files:
convert_xlsx_to_xlsm(selected_files)
else:
messagebox.showwarning("경고", "변환할 파일을 선택하지 않았습니다.")
# GUI 설정
root = tk.Tk()
root.title("XLSX to XLSM 변환기")
root.geometry("400x200")
# 파일 선택 버튼
select_button = tk.Button(root, text="파일 선택", command=select_files)
select_button.pack(pady=20)
# 선택된 파일을 표시할 레이블
selected_files_label = tk.Label(root, text="파일이 선택되지 않았습니다.")
selected_files_label.pack(pady=10)
# 변환 버튼 (초기에는 비활성화)
convert_button = tk.Button(root, text="변환 시작", command=start_conversion, state=tk.DISABLED)
convert_button.pack(pady=20)
# GUI 루프 실행
root.mainloop()
728x90
반응형
'파이썬+VBA' 카테고리의 다른 글
VBA 현금흐름 정렬 by ChatGPT (0) | 2024.11.05 |
---|---|
관세청홈페이지 크롤링 이용하기(HS코드) (0) | 2024.08.13 |
[파이썬] re.findall 구문해석 (1) | 2024.07.20 |
하나의 셀에 줄나눔 되있는것을 각각 셀로 분리 (0) | 2024.06.22 |
구글스프레드 이용 텔레그렘 알람봇 만들기 (0) | 2024.05.13 |