Python使用openpyxl自動化實現(xiàn)Excel排版與讀寫
在第一節(jié)課中,我們體驗了如何用Python快速創(chuàng)建一個Excel文件。但在實際工作中,我們往往需要對已有的Excel文件進行讀取、修改,甚至要設(shè)置漂亮的格式(加粗、標紅、加邊框等)。
本節(jié)課,我們將深入學(xué)習(xí) openpyxl 庫,幫你徹底搞定Excel的基礎(chǔ)讀寫與排版操作!
1. 核心概念理解
在使用openpyxl時,必須掌握三個核心概念,它們的層級關(guān)系如下:
- Workbook (工作簿):代表整個Excel文件。
- Worksheet (工作表):代表Excel文件中的一個Sheet頁。
- Cell (單元格):代表Sheet頁中的某一個小格子(如A1, B2)。
操作Excel的基本流程:打開Workbook -> 選擇Worksheet -> 操作Cell -> 保存Workbook。
2. 讀取與修改已有Excel文件
假設(shè)我們有一個名為 data.xlsx 的文件,里面有一張“成績表”。
import openpyxl
# 1. 加載已存在的Excel文件
wb = openpyxl.load_workbook("data.xlsx")
# 2. 獲取工作表
# 獲取所有sheet的名字: print(wb.sheetnames)
sheet = wb["成績表"]
# 3. 讀取單元格的值
cell_val = sheet["B2"].value
print(f"B2單元格的值是: {cell_val}")
# 4. 修改單元格的值
sheet["C2"] = 98
# 5. 遍歷多行數(shù)據(jù)
for row in sheet.iter_rows(min_row=2, max_row=5, min_col=1, max_col=3, values_only=True):
print(row) # 輸出每一行的數(shù)據(jù)元組
# 6. 保存修改(注意:如果在打開狀態(tài)下保存會報錯,請先關(guān)閉Excel軟件)
wb.save("data_modified.xlsx")
3. 單元格格式大改造
給領(lǐng)導(dǎo)看的報表,格式必須清晰美觀。openpyxl提供了 styles 模塊來處理格式。
3.1 設(shè)置字體 (Font)
from openpyxl.styles import Font # 設(shè)置字體為微軟雅黑,大小14,加粗,紅色 custom_font = Font(name="微軟雅黑", size=14, bold=True, color="FF0000") sheet["A1"].font = custom_font
3.2 設(shè)置對齊方式 (Alignment)
from openpyxl.styles import Alignment # 設(shè)置水平居中、垂直居中 align = Alignment(horizontal="center", vertical="center") sheet["A1"].alignment = align
3.3 設(shè)置背景填充色 (PatternFill)
from openpyxl.styles import PatternFill # 設(shè)置背景色為純色填充,黃色 (Hex顏色代碼) fill = PatternFill(fill_type="solid", start_color="FFFF00") sheet["A1"].fill = fill
3.4 設(shè)置邊框 (Border)
from openpyxl.styles import Border, Side # 定義細邊框線條 thin_line = Side(border_style="thin", color="000000") # 設(shè)置上下左右四個邊框 border = Border(left=thin_line, right=thin_line, top=thin_line, bottom=thin_line) sheet["A1"].border = border
4. 調(diào)整行高與列寬
有時候數(shù)據(jù)太長顯示為 ###,我們需要用代碼自動調(diào)整寬高:
# 設(shè)置第一行的行高為 30 sheet.row_dimensions[1].height = 30 # 設(shè)置A列的列寬為 20 sheet.column_dimensions["A"].width = 20
5. 小結(jié)
這節(jié)課我們掌握了 openpyxl 的核心技能,從文件的加載、數(shù)據(jù)的讀寫,到字體、對齊、背景、邊框的全面美化。利用這些功能,你已經(jīng)可以寫出一個自動給日報/周報排版格式的腳本了。
但如果你有10萬條數(shù)據(jù)需要篩選、統(tǒng)計,openpyxl的速度可能會有點慢。下一節(jié)課,我們將引入真正的數(shù)據(jù)處理大殺器 —— pandas!敬請期待。
到此這篇關(guān)于Python使用openpyxl自動化實現(xiàn)Excel排版與讀寫的文章就介紹到這了,更多相關(guān)Python openpyxl Excel排版與讀寫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
排查?“Python?版本與?NumPy?不匹配”適配版本對照表與安裝方法詳解
NumPy庫有許多版本,每個版本都有不同的功能和改進,這篇文章主要介紹了排查?“Python?版本與?NumPy?不匹配”適配版本對照表與安裝方法的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-12-12
PythonPC客戶端自動化實現(xiàn)原理(pywinauto)
這篇文章主要介紹了Python基于pywinauto實現(xiàn)PC客戶端自動化,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05
使用Python實現(xiàn)一鍵往Word文檔的表格中填寫數(shù)據(jù)
在工作中,我們經(jīng)常遇到將Excel表中的部分信息填寫到Word文檔的對應(yīng)表格中,以生成報告,方便打印,所以本文小編就給大家介紹了如何使用Python實現(xiàn)一鍵往Word文檔的表格中填寫數(shù)據(jù),文中有詳細的代碼示例供大家參考,需要的朋友可以參考下2023-12-12
如何使用Django Admin管理后臺導(dǎo)入CSV
這篇文章主要介紹了如何使用Django Admin管理后臺導(dǎo)入CSV,幫助大家更好的理解和使用django框架,感興趣的朋友可以了解下2020-11-11

