Python Openpyxl 庫安裝與配置詳解
一、Openpyxl 庫簡介
Openpyxl 是 Python 中用于操作 Excel 文件的第三方庫,專注于處理 .xlsx、.xlsm 等 Office Open XML 格式文件。其核心功能包括讀取、寫入、修改 Excel 數(shù)據(jù),支持單元格樣式、圖表、公式等高級(jí)操作。
核心優(yōu)勢(shì):
- ?功能全面:支持?jǐn)?shù)據(jù)讀寫、樣式調(diào)整、圖表生成、公式計(jì)算等,覆蓋 Excel 操作的 90% 以上需求。
- ?高效輕量:能處理百萬行級(jí)別的數(shù)據(jù),適用于自動(dòng)化辦公與數(shù)據(jù)分析場景。
- ?跨平臺(tái)兼容:支持 Windows、macOS 和 Linux 系統(tǒng),與 Microsoft Excel 無縫兼容。
二、安裝與環(huán)境配置
通過 pip 一鍵安裝:
pip install openpyxl
安裝后導(dǎo)入模塊即可使用:
import openpyxl
?三、基礎(chǔ)操作與常用函數(shù)
?1. 創(chuàng)建與保存工作簿
?創(chuàng)建新 Excel 文件:
from openpyxl import Workbook
wb = Workbook() # 創(chuàng)建新工作簿
ws = wb.active # 獲取默認(rèn)工作表
ws.title = "數(shù)據(jù)表" # 重命名工作表
wb.save("new_file.xlsx") # 保存文件[1,5](@ref)?加載現(xiàn)有 Excel 文件:
wb = openpyxl.load_workbook("example.xlsx") # 讀取文件?2. 工作表與單元格操作
?選擇工作表:
sheet = wb["Sheet1"] # 按名稱選擇工作表 sheet = wb.worksheets[0] # 按索引選擇(首個(gè)工作表)[5](@ref)
?讀寫單元格數(shù)據(jù):
# 方式1:通過坐標(biāo)(A1格式) cell_value = sheet["A1"].value # 讀取數(shù)據(jù) sheet["B2"] = "Python" # 寫入數(shù)據(jù)[1](@ref) # 方式2:通過行列索引(從1開始) cell = sheet.cell(row=3, column=2, value=100) # 寫入數(shù)值[7](@ref)
?3. 批量數(shù)據(jù)處理
?逐行寫入數(shù)據(jù):
data = [["姓名", "年齡"], ["張三", 25], ["李四", 30]]
for row in data:
sheet.append(row) # 追加數(shù)據(jù)到末尾行[5](@ref)?遍歷單元格區(qū)域:
for row in sheet.iter_rows(min_row=2, max_col=3): # 限定行、列范圍
for cell in row:
print(cell.value) # 逐行逐列讀取[6](@ref)?四、高級(jí)功能與常用函數(shù)
?1. 單元格樣式設(shè)置
支持字體、顏色、對(duì)齊等樣式調(diào)整:
from openpyxl.styles import Font, PatternFill, Alignment # 設(shè)置字體樣式 font = Font(name="宋體", size=12, bold=True, color="FF0000") sheet["A1"].font = font # 設(shè)置背景填充色 fill = PatternFill(start_color="FFFF00", fill_type="solid") sheet["A1"].fill = fill # 設(shè)置水平居中 sheet["A1"].alignment = Alignment(horizontal="center")[5,7](@ref)
?2. 圖表與公式應(yīng)用
?生成柱狀圖:
from openpyxl.chart import BarChart, Reference chart = BarChart() data = Reference(sheet, min_col=2, min_row=1, max_row=5) # 選擇B列數(shù)據(jù) chart.add_data(data, titles_from_data=True) sheet.add_chart(chart, "E5") # 將圖表插入E5位置[6,7](@ref)
?使用 Excel 公式:
sheet["C1"] = "=SUM(A1:B1)" # 計(jì)算A1+B1的和 sheet["D1"] = "=AVERAGE(A1:A10)" # 計(jì)算A列前10行均值[6](@ref)
?3. 高級(jí)工作表操作
?合并單元格:
sheet.merge_cells("A1:D1") # 合并A1到D1的單元格
sheet.unmerge_cells("A1:D1") # 取消合并[7](@ref)?調(diào)整行列尺寸:
sheet.column_dimensions["A"].width = 20 # 設(shè)置A列寬度 sheet.row_dimensions[1].height = 30 # 設(shè)置首行高度[5](@ref)
五、實(shí)用技巧與注意事項(xiàng)
?1. 性能優(yōu)化
- ?大文件處理:使用
iter_rows()逐行讀取,避免內(nèi)存溢出。 - ?批量操作:減少頻繁的
save()調(diào)用,優(yōu)先在內(nèi)存中完成修改后一次性保存。
?2. 異常處理
try:
wb = openpyxl.load_workbook("file.xlsx")
except FileNotFoundError:
print("文件不存在!")?3. 資源管理
推薦使用 with 語句自動(dòng)關(guān)閉文件:
with openpyxl.load_workbook("data.xlsx") as wb:
sheet = wb.active
# 處理數(shù)據(jù)...?4. 注意事項(xiàng)
- ?文件占用:保存前確保 Excel 未被其他程序打開。
- ?日期處理:需將日期轉(zhuǎn)換為
datetime對(duì)象后再寫入。
?六、應(yīng)用場景
- ?自動(dòng)化報(bào)表生成:批量填充數(shù)據(jù)模板并添加圖表。
- ?數(shù)據(jù)清洗:通過公式和條件篩選清理 Excel 數(shù)據(jù)。
- ?跨系統(tǒng)數(shù)據(jù)遷移:將數(shù)據(jù)庫查詢結(jié)果導(dǎo)出為 Excel 文件。
到此這篇關(guān)于Python-Openpyxl 庫詳解的文章就介紹到這了,更多相關(guān)Python Openpyxl 庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python使用OpenPyXL庫操作Excel表的操作指南
- 如何在python中使用openpyxl庫讀寫Excel.xlsx文件(有參考列程)
- python使用openpyxl庫處理Excel文件詳細(xì)教程
- python使用openpyxl庫讀取Excel文件數(shù)據(jù)
- Python?第三方庫?openpyxl?的安裝過程
- Python Excel處理庫openpyxl詳解
- python使用openpyxl庫讀寫Excel表格的方法(增刪改查操作)
- Python Excel處理庫openpyxl使用詳解
- python3結(jié)合openpyxl庫實(shí)現(xiàn)excel操作的實(shí)例代碼
相關(guān)文章
Python中100個(gè)常用函數(shù)用法全面解析
Python是一種高級(jí)編程語言,具有很多強(qiáng)大的特性,其中之一就是內(nèi)置函數(shù),這篇文章主要介紹了Python中100個(gè)常用函數(shù)用法全面解析的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-12-12
一文掌握Python函數(shù)進(jìn)階:參數(shù)類型與返回值
本文介紹了Python函數(shù)的五種參數(shù)類型,包括位置參數(shù)、默認(rèn)參數(shù)、可變位置參數(shù)、關(guān)鍵字參數(shù)和可變關(guān)鍵字參數(shù),以及它們的應(yīng)用場景和傳遞細(xì)節(jié),本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2026-05-05
conda將python低版本環(huán)境升級(jí)到高版本的完整步驟
這篇文章主要給大家介紹了關(guān)于conda將python低版本環(huán)境升級(jí)到高版本的完整步驟,包括激活環(huán)境、升級(jí)Python版本、驗(yàn)證升級(jí)、處理依賴問題和測(cè)試環(huán)境等步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
教你用Python matplotlib庫制作簡單的動(dòng)畫
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識(shí),文章圍繞著用Python matplotlib制作簡單的動(dòng)畫展開,文中有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06
numpy矩陣乘法中的multiply,matmul和dot的使用
本文主要介紹了numpy矩陣乘法中的multiply,matmul和dot的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02

