1. 행, 열 삽입
테스트를 위한 데이터 입력
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
i=1
for r in range(1,11):
for c in range(1,11):
ws.cell(row=r, column=c, value = i)
i += 1
wb.save('col_row_test.xlsx')
- 결과
행 삽입
ws.insert_rows(5) # 5행에 행 삽입
- 결과
더보기
기존 5행에 있던 데이터부터 6행으로 밀리고 5행에 새로운 행 생성됨
행 삽입_다중
ws.insert_rows(5, 4) # 5행에 행 4개 삽입
- 결과
열 삽입
ws.insert_cols(5) # 5열에 열 삽입
ws.insert_cols(7, 3) # 7열에 열 3개 삽입
- 결과
더보기
기존 5열에 있던 데이터부터 6열으로 밀리고 5열에 새로운 행 생성됨
위 5열 생성 작업 수행한 상태에서 7열부터 9열 빈 열로 생성되고 7열의 데이터는 10열로 밀림
2. 행, 열 삭제
행 삭제
ws.delete_rows(4) # 4번 행 삭제
ws.delete_rows(6, 2) # 6번 행부터 2개의 행 삭제
- 결과
더보기
4번째 행(30번대 데이터) 삭제 되고 5번째 행이 4번째 행(40번대 데이터)으로 올라옴
4번째 행 삭제된 이후 상황에서 6번째 행(60번대 데이터, 1열씩 올라갔으므로) 부터 7번째 행 삭제됨
열 삭제
ws.delete_cols(7)
ws.delete_cols(2,2)
- 결과
더보기
7번째 열(첫 데이터 7) 삭제 되고 8번째 열이 7번째 열으로 올라옴
4번째 열 삭제된 이후 2번째 열(첫 데이터 2) 부터 3번째 열 삭제됨, 앞 삭제 작업으로 영향 받는 열이 없음
3. 셀 범위 이동
이전1
코드1
ws.move_range("A1:G8", rows=2, cols=3) # A1:G8 범위를 2행 아래, 3열 오른쪽으로 이동
- 결과1
더보기
이동하려는 셀에 데이터가 있을 경우 그 데이터 값을 덮어 씀
이전2
코드2
ws.move_range("D3:J10", rows=-2, cols=-3) # D3:J10 범위를 2행 위, 3열 왼쪽으로 이동
- 결과2
더보기
이동하려는 셀에 데이터가 있을 경우 그 데이터 값을 덮어 씀
4. 셀 범위 이동_수식 존재
이전
i=1
for r in range(1,5):
for c in range(1,5):
ws.cell(row=r, column=c, value = i)
i += 1
for row_num in range(1,5):
ws[f'E{row_num}'] = f'=SUM(A{row_num}:D{row_num})'
이전 엑셀
더보기
E 열에 각 행의 합 계산됨
셀 범위 이동 테스트
i=1
for r in range(1,5):
for c in range(1,5):
ws.cell(row=r, column=c, value = i)
i += 1
for row_num in range(1,5):
ws[f'E{row_num}'] = f'=SUM(A{row_num}:D{row_num})' # 동일 행에서 E열에 A열 ~ D열의 합 계산
ws.move_range("A1:E4", rows=4, cols=4) # A1:E4 범위를 2행 아래, 3열 오른쪽으로 이동
셀 범위 이동 테스트, 결과
더보기
수식이 들어간 셀은 이동되지 않음, 이동되어 A열 D 열 값이 없기 때문에 SUM 함수 값 0으로 출력됨
수식 이동 가능한 범위 이동
ws.move_range("A1:E4", rows=4, cols=4, translate=True) # 수식 포함, A1:E4 범위를 2행 아래, 3열 오른쪽으로 이동
- 결과
더보기
수식 까지 이동 되어 SUM 함수 정상 작동
728x90
반응형
'프로그래밍 > Python' 카테고리의 다른 글
Python_openpyxl_엑셀_05_차트_영역,막대 (0) | 2021.02.06 |
---|---|
Python_Jupyter Notebook_VS Code 실행 (0) | 2021.02.03 |
Python_openpyxl_엑셀_03_데이터 응용 (0) | 2021.02.01 |
Python_openpyxl_엑셀_02_셀 관련 (0) | 2021.01.30 |
Python_openpyxl_엑셀_01_시트 관련 (0) | 2021.01.28 |
댓글