평생 쓸일이 없을것 같은것이 나에게 다가왔다
openpyxl
엑셀 싫어함 ㅎ..
#설치
pip install openpyxl
#임포트
import openpyxl
#워크북 생성
work_book = openpyxl.Workbook()
#작명
work_book_name = '에헤라디야'+'.xlsx'
#저장
work_book.save(filename=work_book_name)
#열기
work_book = openpyxl.load_workbook('엑셀이름')
#시트 생성
work_book = work_book.create_sheet('시트이름')
시트에 데이터 박아주기
뭐 더 좋은 방법 찾으면 내꺼도 고치고 싶지만 파이썬과 엑셀의 만남은 초면이라 ㅎ..
#만약 시트에서 하드로 박아줘야 할 구간이 있다면
work_book.cell(row=번호, column=번호).value = '뭐뭐뭐뭐'
#이런식으로 박아줘도 괜찮지만
#셀이 많아지면 소스만 보고는 뭐가 뭔지 잘 모르겠다
#심지어 기하급수적으로 헷갈리기 시작하기 때문에 하드로 박을 구간은 좀 정리해서 썼다
header_data = {
'1st' : work_book.cell(row=2, column=2),
'2nd' : work_book.cell(row=3, column=2),
'3rd' : work_book.cell(row=4, column=2),
}
header_data['1st'].value = '1번'
시트 새단장하기
인터넷 찾아보니까 하나씩 스타일 박는것만 나와있어서 (나름대로) 고민해서 수정했다
일단 스타일을 좀 정리해서 한 세트로 만들었다
style = {
'title': {
'font': Font(name='맑은 고딕', size=10, bold=True),
'alignment': Alignment(horizontal='left', vertical='center'),
'fill': PatternFill(patternType='solid', fgColor=Color('F6DDCC'))
},
'menu': {
'font': Font(name='맑은 고딕', size=8, bold=False),
'alignment': Alignment(horizontal='center', vertical='center'),
'fill': PatternFill(patternType='solid', fgColor=Color('F8F9F9'))
},
'data': {
'font': Font(name='맑은 고딕', size=8, bold=False),
'alignment': Alignment(horizontal='left', vertical='center'),
},
}
그다음에 iter_rows를 사용했다.
for r in work_book.iter_rows(min_row=row최소값, min_col=column최소값, max_row=row최대값, max_col=column최대값):
for cell in r:
if cell.value != None:
cell.font = style['title']['font']
cell.alignment = style['title']['alignment']
cell.fill = style['title']['fill']
뭔가 멋지게 짜면 좋았겠지만 ㅎ..............
적용할 셀이 너무 많아서 간단하게 했다
'Python > Python__works' 카테고리의 다른 글
requests (0) | 2019.09.19 |
---|---|
python json to xml OR xml to json ... 과연 정확하게 되고 있는가? (0) | 2019.09.18 |
lambda (0) | 2019.07.14 |
python lambda (0) | 2019.07.14 |
list 거꾸로 출력하기 (0) | 2019.07.08 |