본문 바로가기

코딩/파이썬과 엑셀

openpyxl로 엑셀 다루기 017. Worksheet.append 메서드로 다수의 셀 값 입력

python : openpyxl : worksheet.append()

Worksheet.append 메서드로 다수의 셀 값 입력

Worksheet 클래스의 메서드 append를 이용해 다수의 셀 값을 작업중인 시트의 맨 마지막에 입력할 수 있다.

 

"""Appends a group of values at the bottom of the current sheet."""

 

Worksheet 클래스의 메서드 append의 전달인자는 리스트, 튜플, 제너레이터 또는 딕셔너리이다.

 

"""
If it’s a list: all values are added in order, starting from the first column
If it’s a dict: values are assigned to the columns indicated by the keys (numbers or letters)
"""

 

아래의 코드에서 처럼

새로운 엑셀 파일을 생성한 후 빈 엑셀 시트에 대하여 리스트 데이터를 append 메서드에 넘겨주면,

첫번째 행에 append에 넘겨준 리스트 데이터가 입력되어 있음을 확인할 수 있다.

 

# openpyxl 3.0.7

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

iter_list = [x for x in range(1, 11)]

ws.append(iter_list)

wb.save('sample.xlsx')

 

iter_list 대입

 

위의 코드 실행으로 생성된 엑셀 파일 "sample.xlsx"를 불러와 tuple 데이터를 append 메서드에 넘겨주면,

두번째 행에 append에 넘겨준 튜플 데이터가 입력되어 있음을 확인할 수 있다.

 

# openpyxl 3.0.7

from openpyxl import load_workbook

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

iter_list = [x for x in range(1, 11)]
iter_tuple = tuple(iter_list)

ws.append(iter_tuple)

wb.save('sample.xlsx')

 

iter_tutple 대입

 

딕셔너리 데이터를 append 메서드에 넘겨줄 때, 각 열에 대한 문자 또는 숫자로 값이 대입되는 셀을 지정할 수 있다.

 

아래의 코드에서 처럼 append에 넘겨준 딕셔너리 데이터는 A열 부터가 아닌 B열부터 입력되어 있음을 확인할 수 있다.

 

# openpyxl 3.0.7

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

iter_dict_letters = {'B': 2, 'D': 4, 'F': 6, 'H': 8, 'J': 10}
iter_dict_numbers = {  2: 2,   4: 4,   6: 6,   8: 8,  10: 10}

ws.append(iter_dict_letters)
ws.append(iter_dict_numbers)

wb.save('sample.xlsx')

 

iter_dict 대입