일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 파이썬GUI
- windows
- python
- 비주얼베이직
- Outlook
- 파이썬
- pythongui
- 윈도우11
- 파워포인트
- 윈도우10
- 문자열
- 오피스
- 파이썬3
- Android
- 엑셀
- 아웃룩
- VBA
- 안드로이드
- git
- Windows10
- pyqt5
- python3
- 깃
- Windows11
- matlab
- office
- Excel
- win32com
- pandas
- html
Appia의 IT세상
엑셀[Excel] Win32com 이용하여, 셀 복사(Copy) 붙여놓기(Paste) - 엑셀 자동화 본문
엑셀[Excel] Win32com 이용하여, 셀 복사(Copy) 붙여놓기(Paste) - 엑셀 자동화
Appia 2021. 5. 16. 05:52엑셀[Excel] Win32com 이용하여, 셀 복사(Copy) 붙여놓기(Paste) - 엑셀 자동화
아마도 문서 작업을 하다 보면 가장 많이 사용하는 부분이 복사(Copy)와 붙여놓기가 아닐까라는 생각을 합니다. 그래서 그래서 한번 생각해봤습니다. 파이썬(Python)을 이용해서 엑셀에 내용을 스스로 복사하고 붙여놓기 할 수 없을까 라는 생각을 말이죠. 그래서 일단 가장 먼저 기본이되는 복사와 붙여놓기에 대해서 알아보도록 하겠습니다.
이번 포스팅을 진행하기 앞에서, 관련된 내용은 Pywin32모듈을 바탕으로 진행됩니다. 따라서 관련된 부분에 대해서 다음 링크의 부분을 활용해야 하기 때문에 Pywin32을 설치 해주시길 바랍니다.
먼저 전체 코드를 살펴보도록 하겠습니다.
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)
이번 포스팅에서는 엑셀[Excel] Win32com 이용하여, 셀 복사(Copy) 붙여놓기(Paste)라는 주제로 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다.
'Python > Python Office 자동화_EXCEL_Outlook' 카테고리의 다른 글
엑셀[Excel] Win32com 이용하여, 셀 오름차순, 내림차순 정렬하기(Sort) (0) | 2021.05.20 |
---|---|
엑셀[Excel] Win32com 이용하여, 특정열의 같은 내용끼리 셀 병합하기 (Merge하기) - 엑셀 자동화 (3) | 2021.05.18 |
파이썬 [Python] win32com 이용하여, 엑셀(Excel)에서 셀의 데이터 타입에 따른 셀의 색 변경하기 (0) | 2021.05.14 |
파이썬 [Python] win32com 이용하여, 엑셀(Excel)에서 빈칸의 셀 색깔 변경하기 (1) | 2021.05.13 |
파이썬 [Python] win32com 이용하여, 엑셀(Excel)에서 셀, 문자 색깔 바꾸기 (0) | 2021.05.12 |