카테고리 없음

openpyxl sheet

Roien 2021. 12. 19.
반응형

openpyxl import

가장 먼저 openpyxl을 import 해야 합니다.

import openpyxl
from openpyxl.styles.borders import Border, Side

declare workbook

작업할 Workbook instance를 선언합니다.

wb = openpyxl.Workbook()

create a new sheet

workbook 내에 sheet을 생성합니다.

wb.create_sheet('sheet 1', 0)

sheet에 cell들을 추가하기 위해서 객체를 얻어옵니다.

sheet = wb.get_sheet_by_name('sheet 1')

adding cells

use Border for each cell

각 cell에 적용할 border style을 정의합니다.

thin_border = Border(left=Side(style='thin'), 
     right=Side(style='thin'), 
     top=Side(style='thin'), 
     bottom=Side(style='thin'))

create cell

각 cell을 생성하고 값을 추가하면서 동시에 cell의 border style을 적용합니다.
cell 생성 시, row, column으로 해당 위치를 지정해야 합니다.

for y in range(10):
    for x in range(10):
       sheet.cell(row=y + 1, column=x + 1).value = str(y) + ':' + str(x)
       sheet.cell(row=y + 1, column=x + 1).border = thin_border

applying column width

각각의 column의 width도 설정할 수 있으며, 다음과 같이 widths list에 각각의 width 값만 기입하여 설정 가능합니다.

widths = [10, 20, 10, 40, 80, 60, 50, 20, 20]
col_idx = ['A']
for i, width in enumerate(widths):
    sheet.column_dimensions[''.join(col_idx)].width = width

    if col_idx[-1] == 'Z':
        col_idx += 'A',
    else:
        col_idx[-1] = chr(ord(col_idx[-1]) + 1)
반응형

댓글