如何在python中使用openpyxl庫讀寫Excel.xlsx文件(有參考列程)
前言
Python中,讀寫.xlsx文件(即Excel 2007及以后版本的文件)常用的庫有openpyxl和pandas。openpyxl提供了對(duì)Excel工作簿、工作表、單元格等的底層操作,而pandas則提供了更高級(jí)的數(shù)據(jù)處理和分析功能,同時(shí)支持讀寫Excel文件。
如果列程沒有看懂,文章后半部分有詳細(xì)教程
讀取.xlsx文件
import openpyxl
# 打開Excel文件
workbook = openpyxl.load_workbook('example.xlsx')
# 獲取活動(dòng)工作表(通常是第一個(gè)工作表)
sheet = workbook.active
# 讀取單元格數(shù)據(jù)
cell_value = sheet['A1'].value
print(cell_value)
# 讀取整行或整列數(shù)據(jù)
row_values = [cell.value for cell in sheet[1]] # 第一行數(shù)據(jù)
column_values = [sheet[f'A{i}'].value for i in range(1, sheet.max_row + 1)] # A列數(shù)據(jù)
# 遍歷所有單元格數(shù)據(jù)
for row in sheet.iter_rows(values_only=True):
print(row)寫入.xlsx文件
import openpyxl
# 創(chuàng)建一個(gè)新的Excel工作簿
workbook = openpyxl.Workbook()
# 獲取活動(dòng)工作表
sheet = workbook.active
# 寫入單元格數(shù)據(jù)
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'
# 保存Excel文件
workbook.save('output.xlsx')使用openpyxl來更新一個(gè)已經(jīng)存在的.xlsx文件中的單個(gè)單元格,而不改變其他
import openpyxl
# 加載現(xiàn)有的Excel文件
workbook = openpyxl.load_workbook('existing_file.xlsx')
# 選擇要修改的工作表,這里假設(shè)是第一個(gè)工作表
sheet = workbook.worksheets[0]
# 找到并修改特定的單元格,這里以A1為例
cell = sheet['A1']
cell.value = '新的值'
# 保存修改后的工作簿,這里會(huì)覆蓋原文件,如果需要保留原文件,請(qǐng)另存為新文件
workbook.save('existing_file.xlsx')綜合應(yīng)用:時(shí)刻數(shù)值記錄,每天生成個(gè)excel文件,以當(dāng)天的時(shí)間命名文件的名字,每隔2s在excel文檔中記錄一個(gè)數(shù)字,每次記錄不覆蓋原始的數(shù)據(jù)
import openpyxl
import time
import os
import random
current_time = time.strftime('%Y-%m-%d')
# 文件路徑
file_path = str(str(current_time)+".xlsx")
# 判斷文件是否存在
if os.path.exists(file_path):
print(f"{file_path} 文件存在")
# workbook = openpyxl.load_workbook('AA.xlsx') # 加載已存在的工作簿
workbook = openpyxl.load_workbook(file_path)
else:
print(f"{file_path} 文件不存在")
workbook = openpyxl.Workbook() # 創(chuàng)建一個(gè)新的工作簿
# 獲取活動(dòng)工作表
sheet = workbook.active
print(sheet['AA1'].value)
if sheet['AA1'].value == None:
start_row = 1
else:
start_row = sheet['AA1'].value+1
while True:
# 獲取當(dāng)前時(shí)間并格式化
current_time = time.strftime('%H:%M:%S')
# %Y - %m - %d
content = random.randint(1, 999)
# 將時(shí)間和內(nèi)容寫入工作表
sheet.cell(row=start_row, column=1, value=current_time)
sheet.cell(row=start_row, column=2, value=content)
sheet['AA1'].value = start_row
workbook.save(file_path) # 保存工作簿
start_row += 1 # 更新起始行以便下次寫入新行
time.sleep(2)
column_values = [str(sheet[f'A{i}'].value)+"-"+ str(sheet[f'B{i}'].value) for i in range(start_row-5 , start_row)]
print(column_values)程序運(yùn)行后會(huì)在程序所在的文件夾產(chǎn)生一個(gè)excel的表格,記錄每隔2s產(chǎn)生的隨機(jī)數(shù)

Python讀寫xlsx文件詳解
在數(shù)據(jù)處理和分析的過程中,Excel文件由于其直觀的表格形式以及易操作的特點(diǎn),被廣泛應(yīng)用于各個(gè)行業(yè)和領(lǐng)域。而Python作為一種強(qiáng)大的編程語言,自然也提供了多種處理Excel文件的庫。其中,openpyxl庫就是專門用于讀寫.xlsx文件的Python庫。本文將詳細(xì)介紹如何使用openpyxl庫來讀寫xlsx文件。
一、安裝openpyxl庫
在使用openpyxl庫之前,首先需要確保已經(jīng)安裝了這個(gè)庫。可以使用pip來安裝:
pip install openpyxl
二、讀取xlsx文件
加載工作簿
使用openpyxl.load_workbook()函數(shù)來加載一個(gè)已經(jīng)存在的xlsx文件:
from openpyxl import load_workbook
workbook = load_workbook('example.xlsx')獲取工作表
一個(gè)Excel文件可以包含多個(gè)工作表(Sheet),通過workbook.sheetnames可以獲取所有工作表的名稱列表,通過workbook[sheet_name]或workbook.active可以獲取對(duì)應(yīng)的工作表對(duì)象。
sheet_names = workbook.sheetnames # 獲取所有工作表名稱 sheet = workbook['Sheet1'] # 獲取名為'Sheet1'的工作表 # 或者使用active屬性獲取活動(dòng)工作表 active_sheet = workbook.active
讀取單元格數(shù)據(jù)
通過工作表的cell()方法或直接使用單元格坐標(biāo),可以讀取單元格的數(shù)據(jù)。
# 使用cell()方法 cell_value = sheet.cell(row=1, column=1).value # 讀取第一行第一列的數(shù)據(jù) # 使用單元格坐標(biāo) cell_value = sheet['A1'].value # 同樣讀取第一行第一列的數(shù)據(jù)
遍歷工作表數(shù)據(jù)
如果需要遍歷整個(gè)工作表的數(shù)據(jù),可以使用iter_rows()或iter_cols()方法。
for row in sheet.iter_rows(values_only=True):
print(row) # 打印每一行的數(shù)據(jù)三、寫入xlsx文件
創(chuàng)建工作簿和工作表
使用openpyxl.Workbook()可以創(chuàng)建一個(gè)新的工作簿,并默認(rèn)創(chuàng)建一個(gè)活動(dòng)工作表。
from openpyxl import Workbook workbook = Workbook() sheet = workbook.active
寫入單元數(shù)據(jù)
與讀取單元格數(shù)據(jù)類似,可以使用cell()方法或直接使用單元格坐標(biāo)來寫入數(shù)據(jù)。
sheet['A1'] = 'Hello' # 在第一行第一列寫入'Hello' sheet.cell(row=2, column=2, value='World') # 在第二行第二列寫入'World'
保存工作簿
使用workbook.save()方法將修改后的工作簿保存到文件。
workbook.save('output.xlsx') # 將工作簿保存為output.xlsx文件四、注意事項(xiàng)
- 在讀取和寫入xlsx文件時(shí),注意文件的路徑和名稱是否正確。
- 如果需要處理大量數(shù)據(jù),建議使用pandas庫來處理Excel文件,它提供了更強(qiáng)大和靈活的數(shù)據(jù)處理能力。
openpyxl庫主要用于處理.xlsx格式的文件,如果需要處理.xls格式的文件,可以使用xlrd和xlwt庫。
總結(jié)
到此這篇關(guān)于如何在python中使用openpyxl庫讀寫Excel.xlsx文件的文章就介紹到這了,更多相關(guān)python openpyxl庫讀寫Excel.xlsx文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python/Django后端使用PIL Image生成頭像縮略圖
這篇文章主要為大家詳細(xì)介紹了Python/Django后端使用PIL Image生成頭像縮略圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
Python 用NumPy創(chuàng)建二維數(shù)組的案例
這篇文章主要介紹了Python 用NumPy創(chuàng)建二維數(shù)組的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
利用Python將分組文本轉(zhuǎn)為Excel的流程步驟
在英語學(xué)習(xí)過程中,我們經(jīng)常會(huì)接觸各種分組整理的詞匯表,如果你下載了一個(gè) .txt 格式的四級(jí)詞匯表,打算分類整理后導(dǎo)入 Excel 學(xué)習(xí)軟件中,大概率你會(huì)遇到格式雜亂、分組不清,所以本文給大家介紹了如何用 Python 腳本自動(dòng)讀取一份分組文本,需要的朋友可以參考下2025-07-07
python深度學(xué)習(xí)tensorflow訓(xùn)練好的模型進(jìn)行圖像分類
這篇文章主要為大家介紹了python深度學(xué)習(xí)tensorflow訓(xùn)練好的模型進(jìn)行圖像分類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Python?Traceback(most?recent?call?last)報(bào)錯(cuò)信息:示例解讀
這篇文章主要介紹了Python?Traceback(most?recent?call?last)報(bào)錯(cuò)信息:示例解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
用python基于appium模塊開發(fā)一個(gè)自動(dòng)收取能量的小助手
大家都有了解過螞蟻森林吧,本篇文章帶給你自動(dòng)收取螞蟻森林能量的思路與方法,基于appium模塊開發(fā)一個(gè)自動(dòng)收取能量的小助手,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值2021-09-09
Python實(shí)現(xiàn)對(duì)Excel表格的操作詳解
這篇文章主要介紹了Python實(shí)現(xiàn)對(duì)Excel表格的操作,在數(shù)據(jù)處理和報(bào)告生成等工作中,Excel表格是一種常見且廣泛使用的工具,使用Python來處理Excel表格能夠大大的提升效率,感興趣的同學(xué)可以參考下2024-02-02

