본문 바로가기

코딩/파이썬과 엑셀

openpyxl로 엑셀 다루기 025. 시트 관련 유용한 속성

시트 관련 유용한 속성

Worksheet 클래스가 제공하는 title이나 max_column, max_row 등의 속성 외 몇 가지 유용한 속성에 대해 소개한다.

 

아래의 코드를 작성한 후 실행해 샘플 엑셀 파일을 생성한다.

 

<코드 1>

# openpyxl 3.0.7

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

for i in range(1, 10):
    ws.append([i * 10 + x for x in range(1, 11)])

print(ws.title)
print(ws.max_column)
print(ws.max_row)

wb.save('sample.xlsx')

 

 

sheet_view.showRowColHeaders

sheet_view.showRowColHeaders 속성은 시트의 행 번호 및 열 문자 정보를 숨기거가 보이게 하는 데 사용한다.

 

<코드 2>

# openpyxl 3.0.7

from openpyxl import load_workbook

wb = load_workbook('sample.xlsx')
ws = wb.active

ws.sheet_view.showRowColHeaders = False

wb.save('sample.xlsx')

 

sheet_view.showGridLines

sheet_view.showGridLines 속성은 시트의 눈금선을 보이게 하거나 숨기는 데 사용한다.

 

<코드 3>

# openpyxl 3.0.7

from openpyxl import load_workbook

wb = load_workbook('sample.xlsx')
ws = wb.active

ws.sheet_view.showGridLines = False

wb.save('sample.xlsx')

 

sheet_view.zoomScale

sheet_view.zoomScale 속성은 활성화 상태에 있는 시트의 화면 보기 비율을 확대하거나 축소할 때 사용한다.

 

<코드 4>

# openpyxl 3.0.7

from openpyxl import load_workbook

wb = load_workbook('sample.xlsx')
ws = wb.active

ws.sheet_view.zoomScale = 120

wb.save('sample.xlsx')

 

 

120%

freeze_panes

freeze_panes 속성으로 셀 고정을 설정한다.

 

<코드 5>

# openpyxl 3.0.7

from openpyxl import Workbook
import random

wb = Workbook()
ws = wb.active

ws['A1'] = 'A'
ws['B1'] = 'B'
for i in range(3, 51):
    r = random.randint(1, 100)
    ws.cell(i, 1, value=r)
    ws.cell(i, 2, value=r)

ws.freeze_panes = ws['A3']

wb.save('sample.xlsx')

 

auto_filter.ref

auto_filter.ref 속성으로 셀에 필터를 설정한다.

 

<코드 6>

# openpyxl 3.0.7

from openpyxl import Workbook
import random

wb = Workbook()
ws = wb.active

ws['A1'] = 'A'
ws['B1'] = 'B'

for i in range(3, 51):
    r = random.randint(1, 100)
    ws.cell(i, 1, value=r)
    ws.cell(i, 2, value=r)

ws.auto_filter.ref = 'A2:B' + str(ws.max_row)

wb.save('sample.xlsx')

 

column_dimensions[x].width

column_dimensions[x].width 속성으로 열 너비를 설정할 수 있다.

 

<코드 7>

# openpyxl 3.0.7

from openpyxl import Workbook
import random

wb = Workbook()
ws = wb.active

ws['A1'] = 'A'
ws['B1'] = 'B'

for i in range(3, 51):
    r = random.randint(1, 100)
    ws.cell(i, 1, value=r)
    ws.cell(i, 2, value=r)

ws.column_dimensions['B'].width = 30

wb.save('sample.xlsx')