如何在python中使用openpyxl庫(kù)讀寫Excel.xlsx文件(有參考列程)
前言
Python中,讀寫.xlsx
文件(即Excel 2007及以后版本的文件)常用的庫(kù)有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文件的庫(kù)。其中,openpyxl
庫(kù)就是專門用于讀寫.xlsx
文件的Python庫(kù)。本文將詳細(xì)介紹如何使用openpyxl
庫(kù)來讀寫xlsx文件。
一、安裝openpyxl庫(kù)
在使用openpyxl
庫(kù)之前,首先需要確保已經(jīng)安裝了這個(gè)庫(kù)。可以使用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庫(kù)來處理Excel文件,它提供了更強(qiáng)大和靈活的數(shù)據(jù)處理能力。
openpyxl
庫(kù)主要用于處理.xlsx
格式的文件,如果需要處理.xls
格式的文件,可以使用xlrd
和xlwt
庫(kù)。
總結(jié)
到此這篇關(guān)于如何在python中使用openpyxl庫(kù)讀寫Excel.xlsx文件的文章就介紹到這了,更多相關(guān)python openpyxl庫(kù)讀寫Excel.xlsx文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python與數(shù)據(jù)庫(kù)交互:入門指南
這篇文章主要介紹了Python與數(shù)據(jù)庫(kù)交互:入門指南的相關(guān)資料,需要的朋友可以參考下2023-11-11python之pyqt5通過按鈕改變Label的背景顏色方法
今天小編就為大家分享一篇python之pyqt5通過按鈕改變Label的背景顏色方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python使用Opencv打開筆記本電腦攝像頭報(bào)錯(cuò)解問題及解決
這篇文章主要介紹了Python使用Opencv打開筆記本電腦攝像頭報(bào)錯(cuò)解問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06