在python中讀寫(xiě)xlsx文件的實(shí)現(xiàn)方式
更新時(shí)間:2025年07月29日 10:02:17 作者:高級(jí)測(cè)試工程師歐陽(yáng)
Python中可使用openpyxl或pandas讀寫(xiě)XLSX文件,openpyxl適合處理格式及大型文件(支持read_only模式),pandas適用于數(shù)據(jù)操作與分塊讀?。ㄍㄟ^(guò)chunksize參數(shù)),兩者均可處理多工作表
讀寫(xiě)XLSX文件的方法
Python中可以使用openpyxl或pandas庫(kù)來(lái)讀寫(xiě)XLSX文件。
以下是兩種方法的詳細(xì)說(shuō)明:
使用openpyxl庫(kù)
- 安裝openpyxl:
pip install openpyxl
- 寫(xiě)入XLSX文件:
from openpyxl import Workbook
# 創(chuàng)建工作簿
wb = Workbook()
ws = wb.active
# 寫(xiě)入數(shù)據(jù)
ws['A1'] = "姓名"
ws['B1'] = "年齡"
ws['A2'] = "張三"
ws['B2'] = 25
# 保存文件
wb.save("example.xlsx")
- 讀取XLSX文件:
from openpyxl import load_workbook
# 加載工作簿
wb = load_workbook("example.xlsx")
ws = wb.active
# 讀取數(shù)據(jù)
for row in ws.iter_rows(values_only=True):
print(row)
使用pandas庫(kù)
- 安裝pandas:
pip install pandas openpyxl
- 寫(xiě)入XLSX文件:
import pandas as pd
# 創(chuàng)建DataFrame
data = {'姓名': ['張三', '李四'], '年齡': [25, 30]}
df = pd.DataFrame(data)
# 寫(xiě)入文件
df.to_excel("example.xlsx", index=False)
- 讀取XLSX文件:
import pandas as pd
# 讀取文件
df = pd.read_excel("example.xlsx")
print(df)
處理大型XLSX文件
對(duì)于大型XLSX文件,可以使用openpyxl的read_only模式或pandas的chunksize參數(shù):
- 使用openpyxl讀取大型文件:
from openpyxl import load_workbook
# 以只讀模式加載
wb = load_workbook("large_file.xlsx", read_only=True)
ws = wb.active
# 逐行讀取
for row in ws.iter_rows(values_only=True):
print(row)
- 使用pandas分塊讀?。?/li>
import pandas as pd
# 分塊讀取
chunk_size = 1000
for chunk in pd.read_excel("large_file.xlsx", chunksize=chunk_size):
print(chunk)
格式化單元格
- 使用openpyxl格式化單元格:
from openpyxl.styles import Font, Alignment
wb = Workbook()
ws = wb.active
# 設(shè)置字體和對(duì)齊
ws['A1'].font = Font(bold=True)
ws['A1'].alignment = Alignment(horizontal="center")
wb.save("formatted.xlsx")
處理多個(gè)工作表
- 讀寫(xiě)多個(gè)工作表:
from openpyxl import Workbook
wb = Workbook()
# 創(chuàng)建工作表
ws1 = wb.create_sheet("Sheet1")
ws2 = wb.create_sheet("Sheet2")
# 寫(xiě)入不同工作表
ws1['A1'] = "Sheet1數(shù)據(jù)"
ws2['A1'] = "Sheet2數(shù)據(jù)"
wb.save("multi_sheet.xlsx")
- 讀取特定工作表:
from openpyxl import load_workbook
wb = load_workbook("multi_sheet.xlsx")
ws = wb["Sheet2"] # 獲取指定工作表
print(ws['A1'].value)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python代碼執(zhí)行時(shí)間測(cè)量模塊timeit用法解析
這篇文章主要介紹了Python代碼執(zhí)行時(shí)間測(cè)量模塊timeit用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
pandas中concatenate和combine_first的用法詳解
本文主要介紹了pandas中concatenate和combine_first的用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
pytorch無(wú)法使用GPU問(wèn)題的解決方法
這篇文章主要介紹了如何解決pytorch 無(wú)法使用GPU 的問(wèn)題,文中通過(guò)代碼和圖文給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02
python實(shí)現(xiàn)FTP循環(huán)上傳文件
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)FTP循環(huán)上傳文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03

