본문 바로가기
IT/프로그래밍

파이썬으로 엑셀 읽고 쓰는 법 - 내 일을 바꾸는 업무 자동화 6장

by nutrient 2021. 5. 29.
728x90
728x170

 

6.4-1

from openpyxl import load_workbook

# result.xlsx를 읽은 후 기본 시트를 선택
xlsx = load_workbook('result.xlsx', read_only=True)
sheet = xlsx.active

# A1 셀의 데이터를 출력
print(sheet['A1'].value)
# B1 셀의 데이터를 출력
print(sheet['B1'].value)



 

6.4-2

from openpyxl import load_workbook

# result.xlsx를 읽은 후 기본 시트를 선택
xlsx = load_workbook('result.xlsx', read_only=True)
sheet = xlsx.active

# 첫번째 행을 가져옴
row = sheet['1']
# 첫번째 행의 각 컬럼의 값을 출력
for cell in row:
    print(cell.value)


 

6.4-3

from openpyxl import load_workbook

# result.xlsx를 읽은 후 기본 시트를 선택
xlsx = load_workbook('result.xlsx')
sheet = xlsx.active

# 첫번째 열을 가져옴
col = sheet['A']
# 첫번째 열의 각 행 값을 출력
for cell in col:
    print(cell.value)


 

6.4-4

from openpyxl import load_workbook

# result.xlsx를 읽은 후 기본 시트를 선택
xlsx = load_workbook('result.xlsx', read_only=True)
sheet = xlsx.active

# 1~2 행을 가져옴
rows = sheet['1:2']
# 각 행을 가져오기 위한 반복문
for row in rows:
    # 각 행의 셀을 가져오기 위한 반복문
    for cell in row:
        print(cell.value)

 

6.4-5

from openpyxl import load_workbook

# result.xlsx를 읽은 후 기본 시트를 선택
xlsx = load_workbook('result.xlsx')
sheet = xlsx.active

# A~B 열을 가져옴
cols = sheet['A:B']
# 각 열을 가져오기 위한 반복문
for col in cols:
    # 각 열의 셀을 가져오기 위한 반복문
    for cell in col:
        print(cell.value)


 

6.4-6

from openpyxl import load_workbook

# result.xlsx를 읽은 후 기본 시트를 선택
xlsx = load_workbook('result.xlsx', read_only=True)
sheet = xlsx.active

# A2,A3,B2,B3 셀을 가져옴
rows = sheet['A2:B3']
# 각 행을 가져오기 위한 반복문
for row in rows:
    # 각 행의 셀을 가져오기 위한 반복문
    for cell in row:
        print(cell.value)

 

6.4-7

from openpyxl import Workbook

# 새로운 엑셀 파일 생성을 위한 클래스 변수 생성
xlsx = Workbook()
sheet = xlsx.active

# A1 셀에 문자열 값 추가
sheet['A1'] = 'my input data'

# 엑셀 파일로 저장
xlsx.save('other.xlsx')



 

6.4-8

from openpyxl import Workbook

# 새로운 엑셀 파일 생성을 위한 클래스 변수 생성
xlsx = Workbook()
sheet = xlsx.active

# 첫번째 행에 데이터 추가
sheet.append(['A1-data', 'B1-data', 'C1-data'])
# 두번째 행에 데이터 추가
sheet.append(['A2-data', 'B2-data', 'C2-data'])

# 엑셀 파일로 저장
xlsx.save('other.xlsx')



 

6.4-9

from openpyxl import Workbook

# 새로운 엑셀 파일 생성을 위한 클래스 변수 생성
xlsx = Workbook()

# '새로운시트2' 이름을 가진 시트 생성
sheet = xlsx.create_sheet('새로운시트2')
sheet['A1'] = '데이터'

# 엑셀 파일로 저장
xlsx.save('other.xlsx')

 

6.4-10

from openpyxl import Workbook

# 기존 엑셀 파일을 위한 클래스 변수 생성
xlsx = load_workbook('other.xlsx')

# '새로운시트2' 시트를 가져옴
sheet = xlsx['새로운시트2']

# 내용 출력
print(sheet['A1'].value)

 

auto_excel.py

from os import listdir
from openpyxl import load_workbook, Workbook

files = listdir('.')

result_xlsx = Workbook()
result_sheet = result_xlsx.active

for myfile in files:
    if myfile[-4:] != 'xlsx':
        continue

    tg_xlsx = load_workbook(myfile, read_only=True)
    tg_sheet = tg_xlsx.active
    
    for row in tg_sheet.iter_rows():
        row_data = []
        for cell in row:
            row_data.append(cell.value)

        result_sheet.append(row_data)

result_xlsx.save('result.xlsx')

 

test.py

from openpyxl import Workbook

for day in range(1,10):
    wb = Workbook()
    ws = wb.active
    for t in range(24):
        data = []
        data.append('2017.12.%d'%day)
        data.append('%2d:00:00'%t)
        data.append('log-data at \'2017-12-%d %2d:00:00\''%(day, t))
        ws.append(data)

    wb.save('2017.12.%d.xlsx'%day)

 

2017.12.1.xlsx
0.01MB
2017.12.2.xlsx
0.01MB
2017.12.3.xlsx
0.01MB
2017.12.4.xlsx
0.01MB
2017.12.5.xlsx
0.01MB
2017.12.6.xlsx
0.01MB
2017.12.7.xlsx
0.01MB
2017.12.8.xlsx
0.01MB
2017.12.9.xlsx
0.01MB
other.xlsx
0.00MB
result.xlsx
0.01MB

728x90
그리드형

댓글