Appia의 IT세상

엑셀[Excel] Win32com 이용하여, 셀 복사(Copy) 붙여놓기(Paste) - 엑셀 자동화 본문

Python/Python Office 자동화_EXCEL_Outlook

엑셀[Excel] Win32com 이용하여, 셀 복사(Copy) 붙여놓기(Paste) - 엑셀 자동화

Appia 2021. 5. 16. 05:52
반응형

엑셀[Excel] Win32com 이용하여, 셀 복사(Copy) 붙여놓기(Paste) - 엑셀 자동화

엑셀[Excel] Win32com 이용하여, 셀 복사(Copy) 붙여놓기(Paste)

아마도 문서 작업을 하다 보면 가장 많이 사용하는 부분이 복사(Copy)와 붙여놓기가 아닐까라는 생각을 합니다. 그래서 그래서 한번 생각해봤습니다. 파이썬(Python)을 이용해서 엑셀에 내용을 스스로 복사하고 붙여놓기 할 수 없을까 라는 생각을 말이죠. 그래서 일단 가장 먼저 기본이되는 복사와 붙여놓기에 대해서 알아보도록 하겠습니다. 

 

이번 포스팅을 진행하기 앞에서, 관련된 내용은 Pywin32모듈을 바탕으로 진행됩니다. 따라서 관련된 부분에 대해서 다음 링크의 부분을 활용해야 하기 때문에 Pywin32을 설치 해주시길 바랍니다. 

파이썬[Python] 014 Pywin32 설치

 

파이썬[Python] 014 Pywin32 설치

오늘은 pywin32모듈 설치 하는 방법에 대해서 살펴 보겠습니다. 많은 분들이 python을 사용하는 이유 중 하나는 업무에 있어서 반복적이고 지속적인 업무들에 대해 자동화 하기 위해서 사용 하는 분

appia.tistory.com

먼저 전체 코드를 살펴보도록 하겠습니다. 

import win32com.client

excel = win32com.client.Dispatch("Excel.Application")

excel.Visible = True

workbook = excel.Workbooks.Add()  # WorkBooks 생성

sheet = workbook.Worksheets("Sheet1")

#데이터 입력부
sheet.Range("A1").value = "Appia"
sheet.Range("A2").value = "Appia"
sheet.Range("A3").value = "Appia"
sheet.Range("A4").value = "Best"
sheet.Range("A5").value = "Best"
sheet.Range("A6").value = "Vest"
sheet.Range("A7").value = "Vest"
sheet.Range("A8").value = "Fest"

#복사 붙여 놓기 
sheet.Range("A1:A8").Copy()
sheet.Range("B2:B9").Select()
sheet.Paste()

위에서 보이는 바와 같이 특정 엑셀 파일을 열어서 작업한 것은 아니고, 새로운 엑셀 파일을 열어서 데이터를 입력하게 코드를 작성하였습니다. 

 

다음과 같이 데이터 입력부를 통해서 원하는 데이터를 Write 하였습니다. 

sheet.Range("A1").value = "Appia"
sheet.Range("A2").value = "Appia"
sheet.Range("A3").value = "Appia"
sheet.Range("A4").value = "Best"
sheet.Range("A5").value = "Best"
sheet.Range("A6").value = "Vest"
sheet.Range("A7").value = "Vest"
sheet.Range("A8").value = "Fest"

이부분을 바탕으로 다음과 같이 복사와 붙여 놓기를 할 수 있습니다.  

sheet.Range("A1:A8").Copy()
sheet.Range("B2:B9").Select()
sheet.Paste()

즉 위에서 보이는 부분과 같이 Copy(), Paste() 함수가 즉 기능을 이룹니다. 단 여기에서 주의해야 할 점은 바로 범위를 선택하는 sheet.Range("B2:B9").Select() 부분입니다. 실제 저의 경우 범위를 맞춰서 입력을 했지만, 범위를 맞추지 않고 "B2:B4"을 입력하더라도 동일한 결과가 나타납니다. 즉, 시작 칸만 맞춰지면 동일한 데이터가 쓰여지게됩니다. 

 

위의 함수를 조금 더 간단히 작성하면 다음과 같이 작성하셔도 됩니다. 

sheet.Range("A1:A8").Copy(sheet.Range("B2:B9"))

훨씬 코드가 간단해졌습니다. 위의 전체코드를 실행하면 다음과 같은 결과가 나타납니다. 

복사 붙여놓기 실행결과 

이와 같은 방식으로 복사와 붙여놓기를 실행할 수 있습니다. 

파이썬 [Python] win32com 이용하여, 엑셀(Excel) 셀 병합하기(Merge)

 

파이썬 [Python] win32com 이용하여, 엑셀(Excel) 셀 병합하기(Merge)

파이썬 [Python] win32com 이용하여, 엑셀(Excel) 셀 병합하기(Merge) 엑셀을 하다보면, 다양한 셀들을 편집하는 기능을 수행하게 됩니다. 그중에서 하나 중요한 것은 셀을 Merge 해야하는 경우도 발생

appia.tistory.com

이번 포스팅에서는 엑셀[Excel] Win32com 이용하여, 셀 복사(Copy) 붙여놓기(Paste)라는 주제로 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments