반응형

파이썬으로 엑셀 셀 테두리 설정, 셀 크기 설정하기

 

 

1. 목표

  • 셀 테두리 설정

  • 셀 크기 설정

 

2. 전체 코드

import openpyxl as oxl
from openpyxl.styles import Border

wb = oxl.Workbook()
ws = wb.active

ws['A1'].border = Border(left=borders.Side(style='thin'))

for i in range(1,5,1):
    for j in range(1,5,1):
        ws.cell(row=i, column=j, value=i*j).border = Border(right=borders.Side(style='thin'))
        
ws.column_dimensions['A'].width = 30
ws.row_dimensions[1].height = 30

wb.save('test055.xlsx')

 

3. 뜯어보기

import openpyxl as oxl
from openpyxl.styles import Border
  • from openpyxl.styles import Border 를 import 해서 테두리 설정을 한다.

ws['A1'].border = Border(left=borders.Side(style='thin'))

for i in range(1,5,1):
    for j in range(1,5,1):
        ws.cell(row=i, column=j, value=i*j).border = Border(right=borders.Side(style='thin'))
  • 원하는 셀에 '.border'와 'Border()'를 이용해 테두리를 설정한다.

    • left= / right= / top= / bottom= 설정 가능

    • borders.Side(style="스타일")을 이용하여 선 종류 선택

      • dashDot

      • dashDotDot

      • dashed

      • dotted

      • double

      • hair

      • medium

      • mediumDashDot

      • mediumDashDotDot

      • mediumDashed

      • slantDashDot

      • thick

      • thin

  • 반복문 for를 이용하여 셀의 값을 넣고 테두리를 설정 할 수 있다.

ws.column_dimensions['A'].width = 30
ws.row_dimensions[1].height = 30
  • 셀의 크기를 설정한다.

    • column_dimensions[]에는 셀 주소의 앞부분 알파벳만 들어 갈 수 있다.

    • row_dimensions[]에는 셀 주소의 뒷부분인 숫자만 들어 갈 수 있다.

반응형
반응형

파이썬으로 엑셀 셀 병합, 해제와 셀 정렬 설정하기

 

 

1. 목표

  • 셀 병합하기

  • 셀 병합 해제하기

  • 셀 값 정렬

 

2. 전체 코드

import openpyxl as oxl
from openpyxl.styles import Font, Alignment

wb = oxl.Workbook()
ws = wb.active

ws.merge_cells('A1:D1')
ws.merge_cells(2,1,2,4)
ws.unmerge_cells('A2:D2')

ws['A1'] = 123
ws['A1'].font = Font(size=35)

ws['A1'].alignment = Alignment(horizontal='center', vertical='bottom')

wb.save('test04.xlsx')

 

3. 뜯어 보기

import openpyxl as oxl
from openpyxl.styles import Font, Alignment
  • from openpyxl.styles import Font, Alignment 을 import 한다.

    • Alignment 를 import하여 정렬 기능을 사용

    • Alignment와 alignments,  Font와 fonts는 다르니 주의

ws.merge_cells('A1:D1')
ws.merge_cells(2,1,2,4)
ws.unmerge_cells('A2:D2')
  • '.merge_cells('시작셀 주소', '마지막 셀 주소')'를 이용하여 셀을 병합한다.

    • 첫번째 처럼 엑셀의 셀 주소로 병합 가능

    • 두번째 처럼 각 셀의 인덱스값으로도 병합 가능

      • ex) ws.merge_cells(2,1,2,4) 는 2행 1열셀(셀 주소 A2)부터 2행 4열셀(셀 주소 D2)까지 병합

  • '.merge_cells()을 이용하여 병합을 해제한다.

ws['A1'] = 123
ws['A1'].font = Font(size=35)

ws['A1'].alignment = Alignment(horizontal='center', vertical='bottom')

 

  • 위에서 병합된 셀(A1부터 D1)에 값을 넣거나 폰트를 변경할 때는 첫번째 셀을 기준으로 한다.

  • 셀의 정렬을 변경할땐 '.Alignment'와 'Alignment()'를 사용하며 가로방향 정렬과 세로방향 정렬을 설정 할 수 있다.)

반응형
반응형

파이썬으로 셀에 값, 함수를 넣고 폰트, 굵게, 기울임, 취소선, 색상, 밑줄 넣기

 

 

1. 목표

  • 셀에 값 넣기

  • 셀에 함수 넣기

  • 셀의 폰트, 굵게, 기울임, 취소선, 색상 밑줄 넣기

 

 

2. 전체 코드

import openpyxl as oxl
from openpyxl.styles import Font, Color

wb = oxl.Workbook()
ws = wb.active

ws["a1"] = 123
ws["a2"] = 456
ws["a3"] = "=sum(a1:a2)"

font1 = ws["a1"]
ft = Font(name="맑은고딕", color='ffe666', size=25, bold=True, italic=True, strikethrough=True, underline='single')
font1.font = ft

wb.save(filename="test03.xlsx")

 

3. 뜯어 보기

import openpyxl as oxl
from openpyxl.styles import Font, Color
  • from openpyxl.styles import Font, Color를 import한다.

    • 셀의 폰트, 색상을 바꿀때 사용된다.

wb = oxl.Workbook()
ws = wb.active

ws["a1"] = 123
ws["a2"] = 456
ws["a3"] = "=sum(a1:a2)"
  • ws = wb.active 는 엑셀파일을 열었을때 열리는 시트를 선택할때 사용된다.

    • ex) 엑셀에서 'sheet1', 'sheet2', 'sheet3'이 있을때 마지막 저장시 'sheet2'를 열고 저장

           이 경우 다음번 엑셀 파일을 열때 'sheet2'가 열리게 된다.

           wb.active 도 엑셀 파일을 열때 보이는 시트는 선택하는 기능이다.

  • ws["a1"] 등을 이용하여 숫자, 문자등을 넣을 수 있다.

    • 셀 주소는 엑셀의 셀 주소를 따라간다.

    • 하나의 셀은 지정이 가능하나 범위 지정은 불가하다.

    • '.value'를 붙여 값을 확인 할 수 있다. (ex. print(ws["a2"].value) => 456)

  • ws["a3"] = "=sum(a1:a2)" 처럼 함수도 똑같이 입력 가능하다.

    • print(ws["a3"].value) 로 보게되면 숫자가 더해진값 579가 아닌 '=sum(a1:a2:)' 가 출력된다.

font1 = ws["a1"]
ft = Font(name="맑은고딕", color='ffe666', size=25, bold=True, italic=True, strikethrough=True, underline='single')
font1.font = ft
  • Font()를 이용하여 폰트를 설정한다.

    • name = 폰트명

    • colort = hex 색상코드

    • size = 정수

    • bold = True / False (굵게)

    • italic = True / False (기울이기)

    • strikethrough = True / False  (취소선)

    • underline = 'single'  (밑줄)

  • 위에서 처럼 셀을 font1에 할당하고 폰트 설정을 ft에 할당하여 사용해도 되고 다이렉트로 입력해도 무관하다.

    • ws["a1"].Font(name="맑은고딕", color='ffe666'size=25bold=Trueitalic=True ...)

 

반응형
반응형

파이썬으로 워크시트 생성, 이동, 인덱스로 접근하는 방법

 

 

1. 목표

  • 워크시트를 원하는 순서에 생성

  • 워크시트 이름을 이용해 n번째 워크시트에 접근

  • 워크시트의 위치를 옮기기

 

2. 전체코드

import openpyxl as oxl

wb = oxl.Workbook()

ws_name = wb.get_sheet_names()
print(ws_name)
print(type(ws_name))

ws = wb[str(ws_name[0])]
ws.title = "test"

wb.create_sheet("1234", 0)
print(wb.get_sheet_names())

wb.move_sheet('test',-1)
print(wb.get_sheet_names())

wb.save(filename="test02.xlsx")

 

3. 뜯어보기

ws_name = wb.get_sheet_names()
print(ws_name)
print(type(ws_name))

ws = wb[str(ws_name[0])]
ws.title = "test"
  • ws_name에 현재 워크북에 있는 시트들의 이름을 할당하여 화면에 출력한다

    • 현재 새로 만든 워크북이기에 기본값인 "Sheet"라는 이름의 워크시트가 있다.

    • print(type(ws_name))을 이용해 타입을 확인하면 리스트 형태로 출력되는 것을 확인 할 수 있다.

  • ws = wb[str(ws_name[0])] 으로 워크시트 이름중 0번(형식이 리스트이기에 첫번째 리스트)을 ws에 할당한다

  • ws.title = 'test' 로  첫번째 워크시트의 이름이 'Sheet'에서 'test'로 바뀐다.

wb.create_sheet("1234", 0)
print(wb.get_sheet_names())

wb.move_sheet('test',-1)
print(wb.get_sheet_names())
  • '1234'라는 워크시트를 맨 앞에 생성한다.

    • print(wb.get_sheet_names()) 의 결과 ['1234', 'test']가 출력된다.

  • wb.move_sheet('test', -1)를 이용하여 'test'시트의 위치를 -1만큼 이동한다.

    • 컴마(,)뒤에오는 숫자는 현재 위치에서 좌측이면 -값, 뒤면 +값을 쓴다.

 

반응형
반응형

Python과 Openpyxl을 이용한 엑셀 파일 만들기, 열기

 

 

1. 목표

  • Openpyxl 설치

  • 새 엑셀 워크북 생성

  • 새 시트 생성

  • 시트명 확인

 

2. 전체코드

import openpyxl as oxl
from openpyxl import load_workbook

wb = oxl.Workbook()
ws = wb.create_sheet("123")

#lwb = oxl.load_workbook("123.xls")

ws = wb.get_sheet_names()
print(ws)

wb.save(filename="test01.xlsx")

 

 

3. 뜯어보기

import openpyxl as oxl
from openpyxl import load_workbook
  • pip를 이용해 'pip install openpyxl'로 openpyxl을 설치하여 import한다 (as oxl을 덧붙여 간략하게 사용)

  • 기존 엑셀 파일을 열땐 openpyxl에서 load_workbook을 import한다

wb = oxl.Workbook()
ws = wb.create_sheet("123")
  • 새 워크북을 생성한다.

    • 새 워크북 생성시 기본으로 'Sheet'라는 시트가 생성되어 있다.

  • wb.create_sheet('123')을 이용하여 '123'이란 이름의 새 시트를 생성한다.

    • 새로 생성된 시트는 맨 뒤에 생성된다

    • wb.create_sheet('123', index)을 이용하여 새로 생성될 시트의 위치 지정이 가능하다

    • ex) wb.create_sheet('123', 0)일 경우 맨 앞에 '123'이란 새 시트가 생성된다.

lwb = oxl.load_workbook("123.xls")
  • 기존에 있던 엑셀 파일을 불러온다.

  • 현재 코드상에 #을 붙여 주석처리 되었있어서 실행되진 않는다

    • *.py파일을 저장해 놓은 폴더에 '123.xls'파일을 넣으면 로드가 가능하다.

    • 파일이 로드되지 않는경우 엑셀파일 우클릭 -> 속성에서 확장자가 'xlsx'인지 'xls'인지 확인 한다.

ws = wb.get_sheet_names()
print(ws)
  • 현재 열린 워크북에 있는 시트 이름을 출력한다.

  • 추후에 시트 개수 확인 및 이름 찾기 등에 사용된다

wb.save(filename="test01.xlsx")
  • 엑셀 파일을 저장한다.

  • 현재 파이썬 코드 저장 위치( *.py의 경로)에 'test01.xlsx'라는 이름으로 저장된다.

    • 절대경로로 저장할 경우 'c\test\test01.xlsx'처럼 경로를 모두 적는다.

 

 

반응형

+ Recent posts