python之openpyxl模塊的安裝和基本用法(excel管理)
openpyxl模塊是一個讀寫Excel 2010文檔的Python庫,如果要處理更早格式的Excel文檔,需要用到額外的庫,openpyxl是一個比較綜合的工具,能夠同時讀取和修改Excel文檔。其他很多的與Excel相關(guān)的項目基本只支持讀或者寫Excel一種功能。 要對excel進行操作,必須要有能打開excel的軟件,這里以wps為例
一.獲取wps的安裝包并安裝1) 工作薄(workbook):一個EXCEL文件就稱為一個工作薄,一個工作薄中可以包含若干張工作表。
2) 工作表(sheet):工作薄中的每一張表格稱為工作表,每張工作表都有一個標(biāo)簽,默認(rèn)為sheet1sheet2sheet3來命名,(一個工作 薄默認(rèn)為由3個工作表組成)
3) 活動表(active sheet):指當(dāng)前正在操作的工作表
4) 行(row): 工作表中的每一行行首數(shù)字(1、2、3、)稱為行標(biāo)題;一張工作表最多有65536行
5) 列(column): 列標(biāo)題:工作表中每一列列首的字母(A、B、C)稱為列標(biāo)題;一張工作表最多有256列
6)單元格(cell): 工作表的每一個格稱為單元格
三.導(dǎo)入openpyxl模塊在pycharm下,執(zhí)行import openpyxl,發(fā)現(xiàn)會報錯,這時我們將鼠標(biāo)放在openpyxl上,按下alt + enter,選擇第一個進行安裝。
出現(xiàn)下圖,說明安裝成功。
如果安裝失敗,就需要到第三方庫進行安裝。
pip3 install openpyx四.openpyxl基本用法1.創(chuàng)建對象
打開或者創(chuàng)建一個Excel需要創(chuàng)建一個Workbook對象
獲取一個表則需要先創(chuàng)建一個Workbook對象,然后使用該對象的方法來得到一個Worksheet對象
如果要獲取表中的數(shù)據(jù),那么得到Worksheet對象以后再從中獲取代表單元格的Cell對象
Workbook對象
一個Workbook對象代表一個Excel文檔,因此在操作Excel之前,都應(yīng)該先創(chuàng)建一個Workbook對象。對于創(chuàng)建一個新的Excel文檔,直接進行Workbook類的調(diào)用即可,對于一個已經(jīng)存在的Excel文檔,可以使用openpyxl模塊的load_workbook函數(shù)進行讀取,該函數(shù)包涵多個參數(shù),但只有filename參數(shù)為必傳參數(shù)。filename 是一個文件名,也可以是一個打開的文件對象
import openpyxlwb = openpyxl.Workbook(’Book1.xlsx’)wb1 = openpyxl.load_workbook(’Book2.xlsx’)print(wb)print(type(wb))print(wb1)print(type(wb1))
sheetnames:獲取工作簿中的表(列表)
active:獲取當(dāng)前活躍的Worksheet
worksheets:以列表的形式返回所有的Worksheet(表格)
read_only:判斷是否以read_only模式打開Excel文檔
encoding:獲取文檔的字符集編碼
properties:獲取文檔的元數(shù)據(jù),如標(biāo)題,創(chuàng)建者,創(chuàng)建日期等
import openpyxlwb = openpyxl.load_workbook(’Book2.xlsx’)print(wb.sheetnames)print(wb.active)print(wb.worksheets)print(wb.read_only)print(wb.encoding)print(wb.properties) ##運行結(jié)果最后三行屬于該屬性
excel信息
運行結(jié)果
Worksheet:
title:表格的標(biāo)題
max_row:表格的最大行
min_row:表格的最小行
max_column:表格的最大列
min_column:表格的最小列
rows:按行獲取單元格(Cell對象) - 生成器
columns:按列獲取單元格(Cell對象) - 生成器
values:按行獲取表格的內(nèi)容(數(shù)據(jù)) - 生成器
Cell:
row:單元格所在的行
column:單元格坐在的列
value:單元格的值
coordinate:單元格的坐標(biāo)
import openpyxlwb = openpyxl.load_workbook(’Book2.xlsx’)##選擇要操作的工作表, 返回工作表對象sheet = wb[’排序商品信息’]#獲取工作表的名稱print(sheet.title)# 獲取工作表中行和列的最值print(sheet.max_column)print(sheet.max_row)print(sheet.min_column)print(sheet.min_row)##修改表的名稱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)
運行前excel信息
import openpyxlwb = openpyxl.load_workbook(’Book2.xlsx’)##選擇要操作的工作表, 返回工作表對象sheet = wb[’排序商品信息’]for row in sheet.rows: # 循環(huán)遍歷每一個單元格 for cell in row: # 獲取單元格的內(nèi)容 print(cell.value, end=’,’) print()
import openpyxlwb = openpyxl.load_workbook(’Book2.xlsx’)##選擇要操作的工作表, 返回工作表對象sheet = wb[’排序商品信息’]for row in sheet.values: print(*row)
需求:
商品名稱 商品價格 商品數(shù)量
- 定義一個函數(shù), readwb(wbname, sheetname=None)
- 如果用戶指定sheetname就打開用戶指定的工作表, 如果沒有指定, 打開active sheet;
- 根據(jù)商品的價格進行排序(由小到大), 保存到文件中;商品名稱:商品價格:商品數(shù)量
- 所有信息, 并將其保存到數(shù)據(jù)庫中;
import osimport openpyxldef readwb(wbname, sheetname=None): # 打開工作薄 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('寫入Excel[%s]中.......' %(wbname)) # 打開excel表, 如果文件不存在, 自己實例化一個WorkBook對象 wb = openpyxl.Workbook() # 修改當(dāng)前工作表的名稱 sheet = wb.active # 修改工作表的名稱 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) # ** 往單元格寫入內(nèi)容 # sheet.cell[’B1’].value = 'value' # sheet.cell(row=1, column=2, value='value') # 保存寫入的信息 wb.save(filename=wbname) print('寫入成功!')data = readwb(wbname=’Book1.xlsx’)save_to_excel(data, wbname=’Book2.xlsx’, sheetname='排序商品信息')
原excel信息
新excel信息
到此這篇關(guān)于python之openpyxl模塊的安裝和基本用法的文章就介紹到這了,更多相關(guān)python openpyxl模塊(excel管理)內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 讓chatgpt將html中的圖片轉(zhuǎn)為base64方法示例2. 《CSS3實戰(zhàn)》筆記--漸變設(shè)計(一)3. CSS3實現(xiàn)動態(tài)翻牌效果 仿百度貼吧3D翻牌一次動畫特效4. ASP.NET MVC把數(shù)據(jù)庫中枚舉項的數(shù)字轉(zhuǎn)換成文字5. 移動端HTML5實現(xiàn)拍照功能的兩種方法6. ASP.NET Core自定義中間件的方式詳解7. 測試模式 - XSL教程 - 58. html5手機觸屏touch事件介紹9. 用xslt+css讓RSS顯示的跟網(wǎng)頁一樣漂亮10. 教你JS更簡單的獲取表單中數(shù)據(jù)(formdata)
