Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 주피터노트북그래프
- sql따라하기
- python알고리즘
- SQL
- 파이썬
- 파이썬크롤링
- sql연습하기
- 데이터분석시각화
- 판다스데이터분석
- 수업기록
- SQLSCOTT
- 주피터노트북데이터분석
- 주피터노트북맷플롯립
- 파이썬시각화
- 파이썬수업
- 주피터노트북판다스
- 맷플롯립
- 파이썬데이터분석주피터노트북
- 파이썬차트
- 주피터노트북
- 파이썬데이터분석
- python수업
- Python
- 판다스그래프
- 파이썬알고리즘
- matplotlib
- SQL수업
- sql연습
- python데이터분석
- 팀플기록
Archives
- Today
- Total
IT_developers
Python RPA(업무자동화) 개념 및 실습 - 엑셀(2) 본문
RPA(Robotic Process Automation)
- 웹, 윈도우, 어플리케이션(엑셀 등)을 사전에 설정한 시나리오에 따라 자동적으로 작동하여 수작업을 최소화하는 일련의 프로세스
- RPA 사용 소프트웨어
- Uipath, BluePrism, Automation Anywhere, WinAutomation
- RPA 라이브러리
- pyautogui, pyperclip, selenium
RPAbasic\excel 폴더 - 5_range.py
from openpyxl import Workbook
import random
wb = Workbook()
ws = wb.active
# 한 줄 씩 데이터 삽입 - 리스트 이용
ws.append(["번호", "영어", "수학"]) # 가장 첫줄 타이틀 입력
# 임의로 영어,수학 점수 입력
for i in range(1, 11):
ws.append([i, random.randint(0, 100), random.randint(0, 100)])
# 첫번째 행 가져오기
# 방법 1)
print("방법 1)", ws["A1"].value, ws["B1"].value, ws["C1"].value)
# 방법 2)
print("방법 2)")
for i in range(1, 2):
for j in range(1, 4):
print(ws.cell(i, j).value, end=" ")
# 방법 3)
print("방법 3)")
for j in range(1, 4):
print(ws.cell(1, j).value, end=" ")
print()
# 방법 4)
first_row = ws[1]
print("방법 4)")
for cell in first_row:
print(cell.value, end=" ")
![](https://blog.kakaocdn.net/dn/bgmFTE/btrEeksn4YS/5MFXwk5fiSSXT2glskkbfK/img.png)
# 2~6번 행 가져오기
row_range = ws[2:6] # 마지막 번호 6 포함
for rows in row_range:
for cell in rows:
print(cell.value, end=" ")
print()
![](https://blog.kakaocdn.net/dn/lez19/btrEdSbMxg1/y71gc9mONXkusRnRaP90c0/img.png)
# 3행부터 마지막까지 가져오기
row_range = ws[3 : ws.max_row] # 마지막 번호 6 포함
for rows in row_range:
for cell in rows:
print(cell.value, end=" ")
print()
![](https://blog.kakaocdn.net/dn/nCNzW/btrEeky8dUs/TE4xfr3bJVYdxkgZJVgNW1/img.png)
# iter_rows() / iter_cols(): 전체 rows, cols 함수
# C행을 가지고 나옴.
for row in ws.iter_rows():
print(row[2].value)
for col in ws.iter_cols():
print(col[2].value)
wb.save("./RPAbasic/excel/range.xlsx")
![](https://blog.kakaocdn.net/dn/bpaw89/btrEgp7vuU3/pu1C2P7KPwyHiMyQLj2DqK/img.png)
![](https://blog.kakaocdn.net/dn/lutTF/btrEejmHQ4H/7DYtkDNq5oRdlfSRLGww1K/img.png)
# 2차원
rows = [
["이름", "생년월일"],
["홍길동", "801020"],
["성춘향", "811020"],
["김지원", "860920"],
["남주혁", "880705"],
]
for row in rows:
ws.append(row)
RPAbasic\excel 폴더 - 6_search.py
from openpyxl import load_workbook
wb = load_workbook("./RPAbasic/excel/range.xlsx")
ws = wb.active
# 제목 행 제거 : min_row
# 타이틀 지우기. 1번 행은 타이틀, min_row= 어디부터 읽기. 2행부터 읽어오기
for row in ws.iter_rows(min_row=2):
print(row[0].value, row[1].value, row[2].value)
# 영어 점수가 80 이상인 것만 출력.
for row in ws.iter_rows(min_row=2):
if row[1].value > 80:
print(row[0].value, row[1].value, row[2].value)![](https://blog.kakaocdn.net/dn/bFtKn5/btrEczdeCMX/16kSiZUdptRPIzGZXFQ88k/img.png)
![](https://blog.kakaocdn.net/dn/bFtKn5/btrEczdeCMX/16kSiZUdptRPIzGZXFQ88k/img.png)
# 셀 안에 '영어'라는 문자가 입력된 셀이 있는 경우 '컴퓨터' 변경
for row in ws.iter_rows(max_row=1):
for cell in row:
if cell.value == "영어":
cell.value = "컴퓨터"
wb.save("./RPAbasic/excel/range.xlsx")
![](https://blog.kakaocdn.net/dn/ckBNqc/btrEej1ixDi/8kMFw4wMvn3hrukLXXhKQk/img.png)
RPAbasic\excel 폴더 - 7_insert.py
행, 열 삽입
from openpyxl import load_workbook
wb = load_workbook("./RPAbasic/excel/range.xlsx")
ws = wb.active
# 행 삽입
ws.insert_rows(8)
# 8번 위치부터 5행 삽입
ws.insert_rows(8, 5)
# 열 삽입
ws.insert_cols(2)
# 2번 컬럼부터 3개
ws.insert_cols(2, 3)
wb.save("./RPAbasic/excel/range.xlsx")
RPAbasic\excel 폴더 - 8_delete.py
from openpyxl import load_workbook
wb = load_workbook("./RPAbasic/excel/range.xlsx")
ws = wb.active
# 특정 행 삭제
ws.delete_rows(8)
ws.delete_rows(8, 3)
# 특정 열 삭제
ws.delete_cols(1, 2)
wb.save("./RPAbasic/excel/range_delete.xlsx")
range.xlsx 파일을 읽어서 range_delete.xlsx로 저장
RPAbasic\excel 폴더 - 9_move.py
5_range.py 다시 실행
from openpyxl import load_workbook
wb = load_workbook("./RPAbasic/excel/range.xlsx")
ws = wb.active
# 이동시킬 범위잡기
# move_range(cell_range, rows, cols)
# rows는 그대로 두고, cols는 오른쪽 옆으로 한칸
# - 를 주게 되면 왼쪽/ 위로 이동
ws.move_range("B1:C11", rows=0, cols=1)
wb.save("./RPAbasic/excel/range_move.xlsx")
range.xlsx 파일을 읽어서 range_move.xlsx로 저장
RPAbasic\excel 폴더 - 10_chart.py
from openpyxl import load_workbook
from openpyxl.chart import BarChart, Reference, LineChart
wb = load_workbook("./RPAbasic/excel/range.xlsx")
ws = wb.active
# 막대 차트
# 차트 범위 설정
bar_value = Reference(ws, min_row=2, max_row=11, min_col=2, max_col=3)
# 차트 종류 설정
bar_chart = BarChart()
bar_chart.add_data(bar_value)
# 차트 삽입
ws.add_chart(bar_chart, "E1")
# 선 차트 : LineChart
line_value = Reference(ws, min_row=2, max_row=11, min_col=2, max_col=3)
# 차트 종류 설정
line_chart = LineChart()
line_chart.add_data(line_value)
# 차트 꾸미기
line_chart.title = "성적표"
line_chart.style = 20
line_chart.y_axis.title = "점수"
line_chart.x_axis.title = "번호"
# 차트 삽입
ws.add_chart(line_chart, "E15")
wb.save("./RPAbasic/excel/range_chart.xlsx")![](https://blog.kakaocdn.net/dn/bTrokZ/btrEoacGjaV/Qi79D7sLvX4Kv3j0yECtJK/img.png)
![](https://blog.kakaocdn.net/dn/bTrokZ/btrEoacGjaV/Qi79D7sLvX4Kv3j0yECtJK/img.png)
'Python' 카테고리의 다른 글
Python RPA(업무자동화) 개념 및 실습 - pyautogui (1) | 2022.09.24 |
---|---|
Python RPA(업무자동화) 개념 및 실습 - 엑셀(3) (1) | 2022.09.23 |
Python RPA(업무자동화) 개념 및 실습 - 엑셀(1) (1) | 2022.09.21 |
Python algorithm 개념 및 실습 - 최대 수익 (1) | 2022.09.20 |
Python algorithm 개념 및 실습 - 가짜 동전 (1) | 2022.09.20 |
Comments