컴퓨터/Python
python 클립보드에서 엑셀파일 붙여넣기 win32
풍경소리^^
2024. 11. 29. 17:23
import win32com.client
import pandas as pd
import sys
from pathlib import Path
def paste_df_to_excel(df, file_path, target_cell="A1", sheet_name="Sheet1"):
try:
# Excel 애플리케이션 객체 생성
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = False
excel.DisplayAlerts = False # 경고 메시지 표시 안 함
# 파일 경로 확인
file_path = Path(file_path).resolve()
if not file_path.exists():
raise FileNotFoundError(f"파일을 찾을 수 없습니다: {file_path}")
try:
# DataFrame을 클립보드에 복사
df.to_clipboard(index=False,header=False)
# 워크북 열기
workbook = excel.Workbooks.Open(str(file_path))
worksheet = workbook.Worksheets(sheet_name)
# 대상 셀 선택 및 붙여넣기
target_range = worksheet.Range(target_cell)
target_range.PasteSpecial()
# 저장
workbook.Save()
except Exception as e:
print(f"작업 중 오류 발생: {str(e)}", file=sys.stderr)
raise
finally:
# 워크북 닫기
if 'workbook' in locals():
workbook.Close(SaveChanges=True)
# Excel 종료
excel.Quit()
except Exception as e:
print(f"Excel 작업 중 오류 발생: {str(e)}", file=sys.stderr)
raise
# 사용 예시
if __name__ == "__main__":
# 테스트 데이터 생성
# df = pd.DataFrame(
# [[3, 2, 5], [10, 0, 2], [6, 5, 3]],
# index=["이성계", "김유신", "이순신"],
# columns=["사과", "자두", "포도"]
# )
try:
paste_df_to_excel(
df=df3,
file_path="./data/01vlookup.xls",
target_cell="J5",
sheet_name="Sheet1"
)
print("데이터가 성공적으로 붙여넣기 되었습니다.")
except Exception as e:
print(f"프로그램 실행 중 오류 발생: {str(e)}", file=sys.stderr)