1. 엑셀 파일 데이터 읽어 가공하고 원하는 값만 log파일로 데이터 넣기 실습

import openpyxl

raw_file_name = 'rawdata.xlsx'

# raw_file_name 파일을 data만 load
wb = openpyxl.load_workbook(raw_file_name, data_only=True)

# 'Sheet'라는 시트 명을 load
load_ws = wb['Sheet1']

# 읽어올 범위 설정
cell_range = load_ws['D1':'BL317']
for row in cell_range:
    for cell in row:
        # mode 값이 pass면 log를 남기지 않음, write면 log 남김
        mode = 'write'
        try:
            cell.value = str(cell.value)
            # 불필요 데이터 가공
            if '선반' not in cell.value and cell.value != 'None' and '.' in cell.value:
                if '(' in cell.value:
                    cell.value = cell.value.split('(')[0].strip()
                    if '인스퍼' in cell.value:
                        cell.value = cell.value.split('인스퍼')[1].strip()
                    else:
                        pass
                else:
                    pass
            else:
                mode = 'pass'
        except AttributeError:
            mode = 'pass'
        if mode != 'pass':
            #print(cell.value)
            with open('ip_list_log.txt', 'a') as f:
                f.write(cell.value + '\n')
        else:
            pass
wb.close()

 

 

 

2. 이외 openpyxl 사용법

 - 엑셀 파일 생성

# workbook 객체 생성, sheet1이 생성됨
wb = openpyxl.Workbook()

# 시트 생성
sheet2 = wb.create_sheet('sheet2')	# 마지막 시트 뒤에 추가
sheet3 = wb.create_sheet('sheet3', 1)	# sheet1 앞에 삽입하여 추가

# 시트 이름 변경
sheet2.title = '바뀐시트명입니다'

# workbook 저장
wb.close()	# 파일 닫기
wv.save('저장할 파일명.xlsx')	# 워크북에 저장
# 실습 예시

import openpyxl

wb = openpyxl.Workbook()
sheet2 = wb.create_sheet('sheet2')
sheet3 = wb.create_sheet('sheet3', 1)
sheet2.title = '바뀐시트명'
wb.save('./new_excel_file.xlsx')

 - 엑셀 파일의 셀에 데이터 쓰기 실습

import openpyxl

wb = openpyxl.Workbook()
# 활성화된 시트 선택
sheet = wb.active

# index를 이용해 cell에 데이터 쓰기
sheet['A1'] = 'hello, I am A1.'	# A1에 쓰기

# cell()함수를 이용해 데이터 쓰기
sheet.cell(row=1, column=1, value='hello, I am (1,1)')	# A1에 쓰기

wb.save('./new_excel_file.xlsx')	# 저장하기

 

 

+ Recent posts