Python設置Excel樣式


前面已經詳細講解過使用Python對Excel表格進行讀、寫操作,本文主要講解下使用Python設置Excel表格的樣式。

深入學習請參考openpyxl官方文檔: https://openpyxl.readthedocs.io/en/stable/

import openpyxl
from openpyxl.styles import Font, Color # 設置字體、aRGB顏色
from openpyxl.styles import PatternFill, colors # 設置背景色、顏色
from openpyxl.styles import Border, Side # 設置邊框
from openpyxl.styles import Alignment # 設置單元格文字對齊方式、自動換行


# 新建工作簿
wb = openpyxl.Workbook()
ws = wb.active

# 1.單元格設置字體大小、類型名稱、是否加粗/斜體/刪除線、顏色
ws.title = 'setFont'
ws['B3'] = 'italic24Font'
# 創建一個字體對象,設置為24pt,Italic(斜體),添加刪除線(strike)
italic24Font = Font(size=24, italic=True, strike=True)
ws['B3'].font = italic24Font

ws['A1'] = 'Bold Red Times New Roman'
# 創建一個字體對象,設置為Times New Roman,加粗,紅色
boldRedFont = Font(name='Times New Roman', bold=True, color='00FF0000')
ws['A1'].font = boldRedFont

# 2.單元格設置計算公式
ws = wb.create_sheet('Formula')
ws['A1'] = 200
ws['A2'] = 100
ws['A3'] = 50
ws['A4'] = 300
# 下面的計算公式與實際操作Excel表格時設置的公式相同
ws['A5'] = '= A1 + A2'
ws['A6'] = '= SUM(A1:A4)'
ws['A7'] = '= A1*A2'
ws['A8'] = '= A1/A2'

# 3.單元格設置行高、列寬
ws = wb.create_sheet('dimentions') # dimentions 尺寸
ws['A1'] = 'Tall row'
ws['B2'] = 'Wide column'
ws.row_dimensions[1].heigth = 50 # 設置第一行的行高50
ws.column_dimensions['B'].width = 20 # 設置B列的列寬20

# 4.單元格設置背景色
ws = wb.create_sheet('background')
ws['A1'] = 'Set background'
color1 = PatternFill("solid", fgColor="0099CC00")
ws['A1'].fill = color1
說明:aRGB顏色參考下方

   

# 5.單元格設置邊框
ws = wb.create_sheet('frame')
border = Border(left=Side(border_style='thin', color='000000'),
right=Side(border_style='thin', color='000000'),
top=Side(border_style='thin', color='000000'),
bottom=Side(border_style='thin', color='000000')) # 設置成細的,黑色邊框
ws['A1'].border = border
# ws['A1:D5'].border = border
# 說明:邊框的樣式有很多種,可以查閱openpyxl官方文檔。

 

# 6.設置單元格文字對齊方式
ws = wb.create_sheet('alignment_method')
ws['A1'] = "Learning cell's alignment_method"
align = Alignment(horizontal='left', vertical='center', wrap_text=True)
ws['A1'].alignment = align
# 說明:
# horizontal代表水平方向,可以左對齊left,還有居中center和右對齊right,分散對齊distributed,跨列居中centerContinuous,兩端對齊justify,填充fill,常規general
# vertical代表垂直方向,可以居中center,還可以靠上top,靠下bottom,兩端對齊justify,分散對齊distributed
# 自動換行:wrap_text,這是個布爾類型的參數,這個參數還可以寫作wrapText

# 7.合並單元格
ws = wb.create_sheet('merge_cells')
ws.merge_cells('A1:D3')
ws['A1'] = 'Twelve cells merged together'

ws.merge_cells('C5:D5')
ws['C5'] = 'Two cells merged together'

# 8.拆分單元格
ws = wb.copy_worksheet(wb['merge_cells']) # 拷貝之前的merge_cells表單
ws.title = 'unmerge_cells'
ws.unmerge_cells('A1:D3')
ws.unmerge_cells('C5:D5')

# 9.凍結單元格
ws.freeze_panes = 'B1' # 凍結第一列
ws.freeze_panes = 'A2' # 凍結第一行
ws.freeze_panes = 'B2' # 同時凍結第一行和第一列

wb.save('style.xlsx')
執行程序后,打開生成的style.xlsx,會看到各個表單的樣式設置效果:

   

 最后,喜歡的朋友麻煩點贊、推薦給更多熱愛學習朋友,更多精彩內容后續持續更新!

 







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM