Python設(shè)置Excel單元格邊框樣式的完全指南
1. Python操作Excel基礎(chǔ)
1.1 常用Excel操作庫(kù)對(duì)比
Python處理Excel主要有三大庫(kù):
# openpyxl示例
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws['A1'] = "openpyxl示例"
# xlsxwriter示例
import xlsxwriter
workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()
# pandas示例
import pandas as pd
df = pd.DataFrame({'Data': [1, 2, 3]})
df.to_excel('pandas.xlsx', index=False)
特性對(duì)比表:
| 庫(kù)名稱 | 讀寫能力 | 樣式支持 | 性能 | 適用場(chǎng)景 |
|---|---|---|---|---|
| openpyxl | 讀寫 | 完善 | 中等 | 復(fù)雜樣式處理 |
| xlsxwriter | 只寫 | 豐富 | 高 | 大數(shù)據(jù)量寫入 |
| pandas | 讀寫 | 基礎(chǔ) | 高 | 數(shù)據(jù)分析導(dǎo)出 |
1.2 環(huán)境準(zhǔn)備與基礎(chǔ)配置
安裝命令:
pip install openpyxl
基礎(chǔ)工作流程:
from openpyxl import Workbook from openpyxl.styles import Border, Side # 創(chuàng)建工作簿 wb = Workbook() ws = wb.active # 基礎(chǔ)單元格操作 ws['A1'] = "單元格內(nèi)容" ws.cell(row=2, column=1, value="第二行")
2. Excel邊框樣式詳解
2.1 邊框類型全解析
邊框樣式示例:
# 常見(jiàn)邊框樣式 thin = Side(border_style="thin", color="000000") double = Side(border_style="double", color="FF0000") dashed = Side(border_style="dashed", color="00FF00")
2.2 邊框樣式常量
Border類使用:
from openpyxl.styles import Border, Side
# 定義邊框樣式
thin_border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
# 應(yīng)用邊框
ws['A1'].border = thin_border
3. openpyxl設(shè)置邊框?qū)崙?zhàn)
3.1 單一邊框設(shè)置
單個(gè)單元格邊框:
from openpyxl.styles import Border, Side # 定義單邊邊框 left_border = Border(left=Side(style='medium', color='FF0000')) # 應(yīng)用邊框 ws['B2'].border = left_border
3.2 復(fù)合邊框設(shè)置
多樣式邊框:
# 不同邊不同樣式
mixed_border = Border(
left=Side(style='thick', color='0000FF'),
right=Side(style='thin', color='00FF00'),
top=Side(style='dashed', color='FF0000')
)
ws['C3'].border = mixed_border
3.3 批量邊框操作
區(qū)域邊框設(shè)置:
# 批量設(shè)置邊框
from openpyxl.styles import Border, Side
border_style = Border(
left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin')
)
for row in ws['A1:C5']:
for cell in row:
cell.border = border_style
4. 高級(jí)應(yīng)用場(chǎng)景
4.1 結(jié)合pandas設(shè)置邊框
DataFrame導(dǎo)出帶樣式:
import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Border, Side
# 創(chuàng)建DataFrame
df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
# 先導(dǎo)出數(shù)據(jù)
df.to_excel('styled.xlsx', index=False)
# 再添加樣式
wb = load_workbook('styled.xlsx')
ws = wb.active
# 設(shè)置邊框
border = Border(left=Side(style='thin'), right=Side(style='thin'))
for row in ws.iter_rows():
for cell in row:
cell.border = border
wb.save('styled.xlsx')
4.2 報(bào)表美化實(shí)戰(zhàn)
財(cái)務(wù)報(bào)表邊框規(guī)范:
# 設(shè)置外粗內(nèi)細(xì)的表格邊框
outer_border = Border(
left=Side(style='thick'),
right=Side(style='thick'),
top=Side(style='thick'),
bottom=Side(style='thick')
)
inner_border = Border(
left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin')
)
# 應(yīng)用邊框樣式
for row in ws.iter_rows(min_row=2, max_row=10, min_col=1, max_col=5):
for cell in row:
if cell.row == 2 or cell.row == 10 or cell.column == 1 or cell.column == 5:
cell.border = outer_border
else:
cell.border = inner_border
5. 擴(kuò)展與優(yōu)化
5.1 自定義樣式工廠
樣式復(fù)用方案:
def get_border(style='thin', color='000000'):
return Border(
left=Side(style=style, color=color),
right=Side(style=style, color=color),
top=Side(style=style, color=color),
bottom=Side(style=style, color=color)
)
# 使用自定義樣式
ws['A1'].border = get_border('medium', 'FF0000')
5.2 性能優(yōu)化
批量操作優(yōu)化:
# 使用樣式對(duì)象復(fù)用
border = Border(left=Side(style='thin'))
# 先收集所有單元格再統(tǒng)一設(shè)置
cells = []
for row in ws.iter_rows():
for cell in row:
cells.append(cell)
for cell in cells:
cell.border = border
6. 總結(jié)與資源
核心知識(shí)點(diǎn)總結(jié):
- openpyxl提供了最完善的Excel樣式控制能力
- Border和Side類是設(shè)置邊框的核心
- 批量操作時(shí)要注意性能優(yōu)化
推薦學(xué)習(xí)資源:
- openpyxl官方文檔
- pandas樣式處理指南
- Excel樣式規(guī)范文檔
以上就是Python設(shè)置Excel單元格邊框樣式的完全指南的詳細(xì)內(nèi)容,更多關(guān)于Python Excel單元格邊框樣式設(shè)置的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何通過(guò)python實(shí)現(xiàn)全排列
這篇文章主要介紹了如何通過(guò)python實(shí)現(xiàn)全排列,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
Python PYQT界面點(diǎn)擊按鈕隨機(jī)變色功能
遇到這樣的需求寫一個(gè)pyqt界面,要求界面有一個(gè)按鈕,每次點(diǎn)擊這個(gè)按鈕,就會(huì)生成一個(gè)10以內(nèi)的隨機(jī)數(shù),當(dāng)隨機(jī)數(shù)出現(xiàn)的時(shí)候,界面底色要變成對(duì)應(yīng)的顏色,同時(shí)要求隨機(jī)數(shù)會(huì)在界面中展示出來(lái),并且按鈕和數(shù)字的顏色不會(huì)改變,下面給大家分享源代碼,一起看看吧2024-08-08
膠水語(yǔ)言Python與C/C++的相互調(diào)用的實(shí)現(xiàn)
這篇文章主要介紹了膠水語(yǔ)言Python與C/C++的相互調(diào)用的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
python 實(shí)現(xiàn)logging動(dòng)態(tài)變更輸出日志文件名
這篇文章主要介紹了python 實(shí)現(xiàn)logging動(dòng)態(tài)變更輸出日志文件名的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Python 讀寫 Matlab Mat 格式數(shù)據(jù)的操作
這篇文章主要介紹了Python 讀寫 Matlab Mat 格式數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05
python 實(shí)現(xiàn)圖片旋轉(zhuǎn) 上下左右 180度旋轉(zhuǎn)的示例
今天小編就為大家分享一篇python 實(shí)現(xiàn)圖片旋轉(zhuǎn) 上下左右 180度旋轉(zhuǎn)的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python + OpenCV 實(shí)現(xiàn)LBP特征提取的示例代碼
這篇文章主要介紹了Python + OpenCV 實(shí)現(xiàn)LBP特征提取的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python+Django+MySQL實(shí)現(xiàn)基于Web版的增刪改查的示例代碼
這篇文章主要介紹了Python+Django+MySQL實(shí)現(xiàn)基于Web版的增刪改查的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
python實(shí)現(xiàn)每次處理一個(gè)字符的三種方法
這篇文章主要介紹了python實(shí)現(xiàn)每次處理一個(gè)字符的三種方法,是非常實(shí)用的字符串操作技巧,需要的朋友可以參考下2014-10-10

