目錄
- 一.獲取wps的安裝包并安裝
- 二.excel文檔的基本定義
- 三.導(dǎo)入openpyxl模塊
- 四.openpyxl基本用法
- 1.創(chuàng)建對(duì)象
- 2.Workbook對(duì)象屬性(工作簿操作)
- 3.Worksheet,Cell對(duì)象(工作表操作,單元格)
- 4.訪問(wèn)單元格的所有信息
- 5.應(yīng)用案例
- 總結(jié)
前言
openpyxl模塊是一個(gè)讀寫(xiě)Excel 2010文檔的Python庫(kù),如果要處理更早格式的Excel文檔,需要用到額外的庫(kù),openpyxl是一個(gè)比較綜合的工具,能夠同時(shí)讀取和修改Excel文檔。其他很多的與Excel相關(guān)的項(xiàng)目基本只支持讀或者寫(xiě)Excel一種功能。
要對(duì)excel進(jìn)行操作,必須要有能打開(kāi)excel的軟件,這里以wps為例
一.獲取wps的安裝包并安裝
![](/d/20211017/c859f759b928670a27b20d02448caf56.gif)
二.excel文檔的基本定義
1) 工作薄(workbook):一個(gè)EXCEL文件就稱(chēng)為一個(gè)工作薄,一個(gè)工作薄中可以包含若干張工作表。
2) 工作表(sheet):工作薄中的每一張表格稱(chēng)為工作表,每張工作表都有一個(gè)標(biāo)簽,默認(rèn)為sheet1\sheet2\sheet3來(lái)命名,(一個(gè)工作 薄默認(rèn)為由3個(gè)工作表組成)
3) 活動(dòng)表(active sheet):指當(dāng)前正在操作的工作表
4) 行(row): 工作表中的每一行行首數(shù)字(1、2、3、)稱(chēng)為行標(biāo)題;一張工作表最多有65536行
5) 列(column): 列標(biāo)題:工作表中每一列列首的字母(A、B、C)稱(chēng)為列標(biāo)題;一張工作表最多有256列
6)單元格(cell): 工作表的每一個(gè)格稱(chēng)為單元格
三.導(dǎo)入openpyxl模塊
在pycharm下,執(zhí)行import openpyxl,發(fā)現(xiàn)會(huì)報(bào)錯(cuò),這時(shí)我們將鼠標(biāo)放在openpyxl上,按下alt + enter,選擇第一個(gè)進(jìn)行安裝。
出現(xiàn)下圖,說(shuō)明安裝成功。
如果安裝失敗,就需要到第三方庫(kù)進(jìn)行安裝。
四.openpyxl基本用法
1.創(chuàng)建對(duì)象
打開(kāi)或者創(chuàng)建一個(gè)Excel需要?jiǎng)?chuàng)建一個(gè)Workbook對(duì)象
獲取一個(gè)表則需要先創(chuàng)建一個(gè)Workbook對(duì)象,然后使用該對(duì)象的方法來(lái)得到一個(gè)Worksheet對(duì)象
如果要獲取表中的數(shù)據(jù),那么得到Worksheet對(duì)象以后再?gòu)闹蝎@取代表單元格的Cell對(duì)象
Workbook對(duì)象
一個(gè)Workbook對(duì)象代表一個(gè)Excel文檔,因此在操作Excel之前,都應(yīng)該先創(chuàng)建一個(gè)Workbook對(duì)象。對(duì)于創(chuàng)建一個(gè)新的Excel文檔,直接進(jìn)行Workbook類(lèi)的調(diào)用即可,對(duì)于一個(gè)已經(jīng)存在的Excel文檔,可以使用openpyxl模塊的load_workbook函數(shù)進(jìn)行讀取,該函數(shù)包涵多個(gè)參數(shù),但只有filename參數(shù)為必傳參數(shù)。filename 是一個(gè)文件名,也可以是一個(gè)打開(kāi)的文件對(duì)象
import openpyxl
wb = openpyxl.Workbook('Book1.xlsx')
wb1 = openpyxl.load_workbook('Book2.xlsx')
print(wb)
print(type(wb))
print(wb1)
print(type(wb1))
![](/d/20211017/bfc3a64c7ac767b78044ddbf313220a2.gif)
2.Workbook對(duì)象屬性(工作簿操作)
sheetnames:獲取工作簿中的表(列表)
active:獲取當(dāng)前活躍的Worksheet
worksheets:以列表的形式返回所有的Worksheet(表格)
read_only:判斷是否以read_only模式打開(kāi)Excel文檔
encoding:獲取文檔的字符集編碼
properties:獲取文檔的元數(shù)據(jù),如標(biāo)題,創(chuàng)建者,創(chuàng)建日期等
import openpyxl
wb = openpyxl.load_workbook('Book2.xlsx')
print(wb.sheetnames)
print(wb.active)
print(wb.worksheets)
print(wb.read_only)
print(wb.encoding)
print(wb.properties) ##運(yùn)行結(jié)果最后三行屬于該屬性
excel信息
運(yùn)行結(jié)果
![](/d/20211017/b60485eed58c53da07c95cbc160274de.gif)
3.Worksheet,Cell對(duì)象(工作表操作,單元格)
Worksheet:
title:表格的標(biāo)題
max_row:表格的最大行
min_row:表格的最小行
max_column:表格的最大列
min_column:表格的最小列
rows:按行獲取單元格(Cell對(duì)象) - 生成器
columns:按列獲取單元格(Cell對(duì)象) - 生成器
values:按行獲取表格的內(nèi)容(數(shù)據(jù)) - 生成器
Cell:
row:?jiǎn)卧袼诘男?/p>
column:?jiǎn)卧褡诘牧?/p>
value:?jiǎn)卧竦闹?/p>
coordinate:?jiǎn)卧竦淖鴺?biāo)
import openpyxl
wb = openpyxl.load_workbook('Book2.xlsx')
##選擇要操作的工作表, 返回工作表對(duì)象
sheet = wb['排序商品信息']
#獲取工作表的名稱(chēng)
print(sheet.title)
# 獲取工作表中行和列的最值
print(sheet.max_column)
print(sheet.max_row)
print(sheet.min_column)
print(sheet.min_row)
##修改表的名稱(chēng)
sheet.title = 'sheet1'
print(sheet.title)
# 返回指定行指定列的單元格信息
print(sheet.cell(row=1, column=2).value)
cell = sheet['B1']
print(cell)
print(cell.row, cell.column, cell.value,cell.coordinate)
運(yùn)行前excel信息
![](/d/20211017/ec215731a46da051f3d5d6003f0e5878.gif)
4.訪問(wèn)單元格的所有信息
import openpyxl
wb = openpyxl.load_workbook('Book2.xlsx')
##選擇要操作的工作表, 返回工作表對(duì)象
sheet = wb['排序商品信息']
for row in sheet.rows:
# 循環(huán)遍歷每一個(gè)單元格
for cell in row:
# 獲取單元格的內(nèi)容
print(cell.value, end=',')
print()
![](/d/20211017/012193a29ea432fed7e3b44bb5900328.gif)
import openpyxl
wb = openpyxl.load_workbook('Book2.xlsx')
##選擇要操作的工作表, 返回工作表對(duì)象
sheet = wb['排序商品信息']
for row in sheet.values:
print(*row)
![](/d/20211017/bf53e3bbf10761381e5c2d32e7cc35e3.gif)
5.應(yīng)用案例
需求:
商品名稱(chēng) 商品價(jià)格 商品數(shù)量
- 定義一個(gè)函數(shù), readwb(wbname, sheetname=None)
- 如果用戶指定sheetname就打開(kāi)用戶指定的工作表, 如果沒(méi)有指定, 打開(kāi)active sheet;
- 根據(jù)商品的價(jià)格進(jìn)行排序(由小到大), 保存到文件中;商品名稱(chēng):商品價(jià)格:商品數(shù)量
- 所有信息, 并將其保存到數(shù)據(jù)庫(kù)中;
import os
import openpyxl
def readwb(wbname, sheetname=None):
# 打開(kāi)工作薄
wb = openpyxl.load_workbook(wbname)
# 獲取要操作的工作表
if not sheetname:
sheet = wb.active
else:
sheet = wb[sheetname]
# 獲取商品信息保存到列表中
#[ ['name', price, count]
#
# ]
all_info = []
for row in sheet.rows:
child = [cell.value for cell in row]
all_info.append(child)
return sorted(all_info, key=lambda item: item[1])
def save_to_excel(data, wbname, sheetname='sheet1'):
"""
將信息保存到excel表中;
[[' BOOK', 50, 3], ['APPLE', 100, 1], ['BANANA', 200, 0.5]]
"""
print("寫(xiě)入Excel[%s]中......." %(wbname))
# 打開(kāi)excel表, 如果文件不存在, 自己實(shí)例化一個(gè)WorkBook對(duì)象
wb = openpyxl.Workbook()
# 修改當(dāng)前工作表的名稱(chēng)
sheet = wb.active
# 修改工作表的名稱(chēng)
sheet.title = sheetname
for row, item in enumerate(data): # 0 [' BOOK', 50, 3]
for column, cellValue in enumerate(item): # 0 ' BOOK'
sheet.cell(row=row+1, column=column+1, value=cellValue)
# ** 往單元格寫(xiě)入內(nèi)容
# sheet.cell['B1'].value = "value"
# sheet.cell(row=1, column=2, value="value")
# 保存寫(xiě)入的信息
wb.save(filename=wbname)
print("寫(xiě)入成功!")
data = readwb(wbname='Book1.xlsx')
save_to_excel(data, wbname='Book2.xlsx', sheetname="排序商品信息")
原excel信息
新excel信息
![](/d/20211017/fcc50b78d905ff0f70939b31f123dacc.gif)
總結(jié)
到此這篇關(guān)于python之openpyxl模塊的安裝和基本用法的文章就介紹到這了,更多相關(guān)python openpyxl模塊(excel管理)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python使用openpyxl庫(kù)讀寫(xiě)Excel表格的方法(增刪改查操作)
- Python利器openpyxl之操作excel表格
- python中openpyxl和xlsxwriter對(duì)Excel的操作方法
- python 使用openpyxl讀取excel數(shù)據(jù)
- python 利用openpyxl讀取Excel表格中指定的行或列教程
- Python3利用openpyxl讀寫(xiě)Excel文件的方法實(shí)例
- python基于openpyxl生成excel文件
- Python自動(dòng)化辦公Excel模塊openpyxl原理及用法解析
- python3.7 openpyxl 在excel單元格中寫(xiě)入數(shù)據(jù)實(shí)例
- Python使用OpenPyXL處理Excel表格
- Python openpyxl模塊實(shí)現(xiàn)excel讀寫(xiě)操作
- python使用openpyxl操作excel的方法步驟
- 解決python執(zhí)行較大excel文件openpyxl慢問(wèn)題
- Python3讀寫(xiě)Excel文件(使用xlrd,xlsxwriter,openpyxl3種方式讀寫(xiě)實(shí)例與優(yōu)劣)
- python 的 openpyxl模塊 讀取 Excel文件的方法
- Python操作excel的方法總結(jié)(xlrd、xlwt、openpyxl)
- python操作openpyxl導(dǎo)出Excel 設(shè)置單元格格式及合并處理代碼實(shí)例
- Python Excel處理庫(kù)openpyxl詳解