Python讀寫Excel文件庫(kù)的實(shí)現(xiàn)示例
前言
Python 讀寫 Excel 文件的庫(kù)總體看還是很多的, 各有其優(yōu)缺點(diǎn), 以下用一圖總結(jié)各庫(kù)的優(yōu)缺點(diǎn), 同時(shí)對(duì)整體友好的庫(kù)重點(diǎn)介紹其使用教程。
Python 讀寫 Excel 庫(kù)簡(jiǎn)介
| 庫(kù)名稱 | .xls | .xlsx | 讀取 | 寫入 | 修改 | 保存 | 格式調(diào)整 | 插入圖片 |
|---|---|---|---|---|---|---|---|---|
| xlrd | √ | √ | √ | × | × | × | × | × |
| xlwt | √ | × | × | √ | √ | √ | √ | √ |
| xlutils | √ | × | × | √ | √ | √ | × | × |
| xlwings | √ | √ | √ | √ | √ | √ | √ | √ |
| XlsxWriter | × | √ | × | √ | × | √ | √ | √ |
| openpyxl | × | √ | √ | √ | √ | √ | √ | √ |
| pandas | √ | √ | √ | √ | × | √ | × | × |
注: openpyxl: 優(yōu)點(diǎn)是不依賴Excel,計(jì)算機(jī)上不安裝Excel它也能讀寫Excel文件,所以適合做開(kāi)發(fā)。
openpyxl 處理 Excel 文件教程
import openpyxl
def learn_openpyxl_deal_excel(fileName):
# https://openpyxl.readthedocs.io/en/stable/index.html
# 1 讀取文件
wb = openpyxl.load_workbook(fileName)
sheet = wb['Sheet1']
for sheet in wb: # 遍歷所有 sheet
print(sheet.title)
print(wb.sheetnames)
# 2 獲取單元格值
# 1) 指定坐標(biāo)范圍的值
cellss = sheet['A1:B5']
# 2) 指定列的值
cells = sheet['A']
cellss = sheet['A:C']
# 3) 指定行的值
cells = sheet[5]
cellss = sheet[5:7]
# 4) 獲取單元格的值 # 行下標(biāo)從 1 開(kāi)始 列下標(biāo)從 0 開(kāi)始
print(sheet[1][0].value)
# for cells in cellss:
# for cell in cells:
# print(cell.value)
# 3 寫入數(shù)據(jù)
cell = sheet['D4']
cell.value = '521'
sheet.cell(1, 1).value = "write_Data"
# 4 保存文件
wb.save('data/new_data_openpyxl.xlsx')
# 5 新建文件
workbook = openpyxl.Workbook()
worksheet = workbook.active
worksheet.title = 'newSheet'
# 插入數(shù)據(jù)
row = ["A", "B", "C"]
worksheet.append(row)
ws1 = workbook.create_sheet("Mysheet_End") # insert at the end (default)
ws2 = workbook.create_sheet("Mysheet_0", 0) # insert at first position
ws3 = workbook.create_sheet("Mysheet_pen", -1) # insert at the penultimate position
workbook.save('data/new_data_openpyxl_2.xlsx')
workbook.close()
if __name__ == "__main__":
xlsx_path = 'data/data.xlsx'
learn_openpyxl_deal_excel(xlsx_path)pandas 處理 Excel 文件教程
import pandas as pd
def learn_pandas_deal_excel(fileName):
# https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html#pandas.read_excel
# https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_excel.html?highlight=excel#pandas.DataFrame.to_excel
# 1 讀取文件的同時(shí)必須指定工作表:
sheet = pd.read_excel(fileName, sheet_name='Sheet1', index_col=False)
# 2 獲取單元格值
# 第一行為標(biāo)題行,所以從第二行才開(kāi)始是其數(shù)據(jù)的第一行(idex=0)
# print(sheet.head(2))
# 1) 指定行的值 loc 根據(jù)所定義的index來(lái)獲取行
# print(sheet.loc[1])
# print(sheet.iloc[1])
# 2) 指定列的值
print(sheet.iloc[:, 0]) # 列下標(biāo)從 0 開(kāi)始
# 3) 獲取單元格的值
# print(sheet.loc[0][2])
# 3 保存文件
df = pd.DataFrame([1, 2, 3])
df.to_excel("data/new_data_pandas.xlsx")
if __name__ == "__main__":
xls_path = 'data/data.xls'
xlsx_path = 'data/data.xlsx'
learn_pandas_deal_excel(xls_path)
learn_pandas_deal_excel(xlsx_path)總結(jié)
本博客提到的所有代碼均可到我的 GitHub 下載。
到此這篇關(guān)于Python讀寫Excel文件庫(kù)的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Python讀寫Excel文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python樹(shù)莓派學(xué)習(xí)筆記之UDP傳輸視頻幀操作詳解
這篇文章主要介紹了Python樹(shù)莓派學(xué)習(xí)筆記之UDP傳輸視頻幀操作,結(jié)合實(shí)例形式詳細(xì)分析了Python樹(shù)莓派編程中使用UDP協(xié)議進(jìn)行視頻幀傳輸?shù)南嚓P(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-11-11
python-pymongo常用查詢方法含聚合問(wèn)題
這篇文章主要介紹了python-pymongo常用查詢方法含聚合問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
用python實(shí)現(xiàn)k近鄰算法的示例代碼
這篇文章主要介紹了用python實(shí)現(xiàn)k近鄰算法的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
python 用lambda函數(shù)替換for循環(huán)的方法
今天小編就為大家分享一篇python 用lambda函數(shù)替換for循環(huán)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Django Rest framework認(rèn)證組件詳細(xì)用法
這篇文章主要介紹了Django Rest framework認(rèn)證組件詳細(xì)用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Python3中內(nèi)置類型bytes和str用法及byte和string之間各種編碼轉(zhuǎn)換 問(wèn)題
這篇文章主要介紹了Python3中內(nèi)置類型bytes和str用法及byte和string之間各種編碼轉(zhuǎn)換問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09
Python3.7將普通圖片(png)轉(zhuǎn)換為SVG圖片格式(網(wǎng)站logo圖標(biāo))動(dòng)起來(lái)
這篇文章主要介紹了Python3.7將普通圖片(png)轉(zhuǎn)換為SVG圖片格式并且讓你的網(wǎng)站Logo(圖標(biāo))從此”動(dòng)”起來(lái),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Python ArcPy實(shí)現(xiàn)柵格圖像文件由HDF格式批量轉(zhuǎn)換為TIFF格式
這篇文章主要為大家詳細(xì)介紹了如何基于Python中Arcpy模塊,實(shí)現(xiàn)大量HDF格式的柵格圖像文件批量轉(zhuǎn)換為TIFF格式,有需要的小伙伴可以參考下2024-12-12
配置python連接oracle讀取excel數(shù)據(jù)寫入數(shù)據(jù)庫(kù)的操作流程
這篇文章主要介紹了配置python連接oracle,讀取excel數(shù)據(jù)寫入數(shù)據(jù)庫(kù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
Python3 pickle對(duì)象串行化代碼實(shí)例解析
這篇文章主要介紹了Python3 pickle對(duì)象串行化代碼實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03

