반응형
#!pip3 install openpyxl jdcal
from openpyxl import Workbook #workbook 생성 workb=Workbook() #worksheet 활성화 worksh=workb.active #A1에 'Hello World'값 입력 worksh['A1']='Hello World' # 시트 추가 worksh2=workb.create_sheet('테스트 시트',1) #숫자 100 입력 worksh2['A1']=100 #시트 추가 worksh3=workb.create_sheet('테스트 시트 3',2) #시트 삭제 workb.remove(worksh3) #시트명 변경 worksh2.title="새이름" #셀병합 #A1~E1셀 병합 worksh.merge_cells('B1:E1') worksh['B1']='셀병합' #셀폰트설정 및 정렬 from openpyxl.styles import Font, Alignment font_align1=worksh['B1'] font_align1.font=Font(name='나눔고딕', size=25, bold=True) font_align1.alignment=Alignment(horizontal='center',vertical='center') #셀 테두리 worksh['B2']='테스트' font_align2=worksh['B2'] from openpyxl.styles import Border, Side, PatternFill, Color #box설정 box=Border(left=Side(border_style="thin", color='FF000000'), right=Side(border_style="thin", color='FF000000'), top=Side(border_style="thin", color='FF000000'), bottom=Side(border_style="thin", color='FF000000'), diagonal=Side(border_style="thin", color='FF000000'), diagonal_direction=0, outline=Side(border_style="thin", color='FF000000'), vertical=Side(border_style="thin", color='FF000000'), horizontal=Side(border_style="thin", color='FF000000') ) #셀 테두리 적용 font_align2.border=box font_align2.fill=PatternFill(patternType='solid', fgColor=Color('FFC000')) #지정영역 위쪽 스크롤 고정 A2위쪽=A1 고정 worksh.freeze_panes='A2' #엑셀로 저장 workb.save('hello.xlsx') |
from openpyxl import Workbook, load_workbook from openpyxl.chart import ScatterChart, Series, Reference from openpyxl.chart.layout import Layout, ManualLayout wb = Workbook() ws = wb.active rows = [ ['Size', 'Batch 1', 'Batch 2'], [2, 40, 30], [3, 40, 25], [4, 50, 30], [5, 30, 25], [6, 25, 35], [7, 20, 40], ] for row in rows: ws.append(row) ch1 = ScatterChart() xvalues = Reference(ws, min_col=1, min_row=2, max_row=7) for i in range(2, 4): values = Reference(ws, min_col=i, min_row=1, max_row=7) series = Series(values, xvalues, title_from_data=True) ch1.series.append(series) ch1.title = "Default layout" ch1.style = 13 ch1.x_axis.title = 'Size' ch1.y_axis.title = 'Percentage' ch1.legend.position = 'r' ws.add_chart(ch1, "B10") from copy import deepcopy # Half-size chart, bottom right ch2 = deepcopy(ch1) ch2.title = "Manual chart layout" ch2.legend.position = "tr" ch2.layout=Layout( manualLayout=ManualLayout( x=0.25, y=0.25, h=0.5, w=0.5, ) ) ws.add_chart(ch2, "H10") # Half-size chart, centred ch3 = deepcopy(ch1) ch3.layout = Layout( ManualLayout( x=0.25, y=0.25, h=0.5, w=0.5, xMode="edge", yMode="edge", ) ) ch3.title = "Manual chart layout, edge mode" ws.add_chart(ch3, "B27") # Manually position the legend bottom left ch4 = deepcopy(ch1) ch4.title = "Manual legend layout" ch4.legend.layout = Layout( manualLayout=ManualLayout( yMode='edge', xMode='edge', x=0, y=0.9, h=0.1, w=0.5 ) ) ws.add_chart(ch4, "H27") wb.save("chart_layout.xlsx") |
반응형
댓글