반응형
1. 워크북(파일)과 워크시트
1-1. 파일 생성 및 저장
from openpyxl import Workbook
wb = Workbook()
wb.save(r"your_path\your_wb_name.xlsx") # 파일이 저장될 경로와 이름 입력
1-2. 워크시트 생성
from openpyxl import Workbook
wb = Workbook()
ws = wb.create_sheet('new_sheet_name') # 생성할 시트의 이름을 입력
wb.save(r"your_path\your_wb_name.xlsx") # 파일이 저장될 경로와 이름 입력
1-3. 워크시트 삭제
from openpyxl import Workbook
wb = Workbook()
ws = wb.create_sheet('sheet_name') # 생성할 시트의 이름을 입력
wb.remove(wb['Sheet']) # 삭제할 시트의 이름을 입력
wb.save(r"your_path\your_wb_name.xlsx") # 파일이 저장될 경로와 이름 입력
2. 셀 다루기
2-1. 하나의 셀
from openpyxl import Workbook
wb = Workbook()
ws = wb['Sheet'] # 기본 워크시트 사용
ws.cell(row=2, column=2).value = 'hello' # 예시: 2행2열의 셀(B2)에 내용 입력
wb.save(r"your_path\your_wb_name.xlsx") # 파일이 저장될 경로와 이름 입력
from openpyxl import Workbook
wb = Workbook()
ws = wb['Sheet'] # 기본 워크시트 사용
ws['B2'] = 'hello' # 예시: B2 셀(2행 2열)에 내용 입력
wb.save(r"your_path\your_wb_name.xlsx") # 파일이 저장될 경로와 이름 입력
두 코드의 결과는 같습니다. 행과 열에 해당하는 숫자로 코드를 구성(위)할 수도 있고, B2와 같이 직접적으로 셀 이름으로 코드를 구성(아래)할 수도 있습니다.
2-2 여러 개의 셀
from openpyxl import Workbook
wb = Workbook()
ws = wb['Sheet'] # 기본 워크시트 사용
# 예시: A1부터 G8까지 모든 셀에 내용 입력
for row in range(1, 9): # 1행부터 8행까지
for col in range(1, 8): # 1열(A)부터 7열(G)까지
ws.cell(row=row, column=col).value = 'hello'
wb.save(r"your_path\your_wb_name.xlsx") # 파일이 저장될 경로와 이름 입력
from openpyxl import Workbook
from openpyxl.utils import column_index_from_string # 열 인덱스를 숫자로 변경하는 함수 불러오기
wb = Workbook()
ws = wb['Sheet'] # 기본 워크시트 사용
# 예시: A1부터 G8까지 모든 셀에 내용 입력
for row in range(1, 9): # 1행부터 8행까지
for col_index in range(column_index_from_string('A'), column_index_from_string('G') + 1): # A열부터 G열까지
ws.cell(row=row, column=col_index).value = 'hello'
wb.save(r"your_path\your_wb_name.xlsx") # 파일이 저장될 경로와 이름 입력
두 코드의 결과는 같습니다. 숫자로 셀의 행과 열을 표현하여 코드를 구성(위)할 수도 있고 column_index_from_sting 함수(열 인덱스를 숫자로 변환해주는 함수)를 이용하여 알파벳으로 코드를 구성(아래)할 수도 있습니다.
참고: 숫자를 열 인덱스로 변환하는 함수는 get_coloumn_letter(숫자) 입니다.
2-3 모든 셀
from openpyxl import Workbook
from openpyxl.styles import Alignment
wb = Workbook()
ws = wb['Sheet'] # 기본 워크시트 사용
# 예시: A1부터 G8까지 모든 셀에 내용 입력
for row in range(1, 9): # 1행부터 8행까지
for col in range(1, 8): # 1열(A)부터 7열(G)까지
ws.cell(row=row, column=col).value = 'hello'
# 예시: 모든 셀에 대하여 가운데 정렬
for row in ws.rows:
for cell in row:
cell.alignment = Alignment(horizontal="center", vertical="center")
wb.save(r"your_path\your_wb_name.xlsx") # 파일이 저장될 경로와 이름 입력
2-4 셀에 내용 입력 (2-1, 2-2 코드 참조)
단순 텍스트 뿐 아니라 정수나 실수와 같은 숫자, '='으로 시작하는 함수를 작성할 수 있습니다.
2-5 셀 정렬 (2-3 코드 참조)
Horizontal Alignment 옵션:
- general: 일반적인 정렬 (기본값)
- left: 텍스트를 셀의 왼쪽에 정렬
- center: 텍스트를 셀의 가운데에 정렬
- right: 텍스트를 셀의 오른쪽에 정렬
- fill: 텍스트를 반복하여 셀을 채움
- justify: 텍스트를 양쪽 끝에 맞춤
- centerContinuous: 중앙 연속 정렬, 연속된 여러 셀에 걸쳐 가운데 정렬
- distributed: 텍스트를 셀 전체에 균등하게 분포
Vertical Alignment 옵션:
- top: 텍스트를 셀의 위쪽에 정렬
- center: 텍스트를 셀의 중앙에 정렬
- bottom: 텍스트를 셀의 아래쪽에 정렬
- justify: 텍스트를 셀의 상하좌우를 모두 맞춤
- distributed: 텍스트를 셀의 상하에 균등하게 분포
2-6 셀 배경
from openpyxl import Workbook
from openpyxl.styles import PatternFill
wb = Workbook()
ws = wb['Sheet'] # 기본 워크시트 사용
# 예시: A1부터 G8까지 모든 셀에 내용 입력
for row in range(1, 9): # 1행부터 8행까지
for col in range(1, 8): # 1열(A)부터 7열(G)까지
ws.cell(row=row, column=col).value = 'hello'
# 예시: 모든 셀에 단색-빨강 배경
for row in ws.rows:
for cell in row:
cell.fill = PatternFill(fgColor="F00000", fill_type="solid")
wb.save(r"your_path\your_wb_name.xlsx") # 파일이 저장될 경로와 이름 입력
2-7 셀 크기
2-7-1 열 너비
from openpyxl import Workbook
from openpyxl.styles import Alignment
wb = Workbook()
ws = wb['Sheet'] # 기본 워크시트 사용
# 예시: A1부터 G8까지 모든 셀에 내용 입력
for row in range(1, 9): # 1행부터 8행까지
for col in range(1, 8): # 1열(A)부터 7열(G)까지
ws.cell(row=row, column=col).value = 'hello'
ws.column_dimensions['A'].width = 20
ws.column_dimensions['B'].width = 15
ws.column_dimensions['C'].width = 10
wb.save(r"your_path\your_wb_name.xlsx") # 파일이 저장될 경로와 이름 입력
2-7-2 행 높이
from openpyxl import Workbook
from openpyxl.styles import Alignment
wb = Workbook()
ws = wb['Sheet'] # 기본 워크시트 사용
# 예시: A1부터 G8까지 모든 셀에 내용 입력
for row in range(1, 9): # 1행부터 8행까지
for col in range(1, 8): # 1열(A)부터 7열(G)까지
ws.cell(row=row, column=col).value = 'hello'
ws.row_dimensions[1].height = 50
ws.row_dimensions[2].height = 30
ws.row_dimensions[3].height = 20
wb.save(r"your_path\your_wb_name.xlsx") # 파일이 저장될 경로와 이름 입력
3. 그래프
728x90
'파이썬 > 업무자동화' 카테고리의 다른 글
[업무자동화] Python으로 Word 작성하기 (0) | 2024.04.18 |
---|---|
[업무자동화] Python으로 파일 이름 한 번에 바꾸기 (일괄 변경) (1) | 2023.12.06 |
댓글