網(wǎng)站首頁 編程語言 正文
openpyxl
是一個(gè)讀寫Excel文檔的Python
庫,能夠同時(shí)讀取和修改Excel文檔。
openpyxl是一個(gè)開源項(xiàng)目,因此在使用之前需要先進(jìn)行安裝:
pip install openpyxl
openxpyxl
中有三個(gè)不同層次的類,分別是Workbook
、Worksheet
和Cello。Workbook是對(duì)Excel工作簿的抽象,Worksheet是對(duì)表格的抽象,Cell是對(duì)單元格的抽象。每一個(gè)類都包含了若干屬性和方法,以便于我們通過這些屬性和方法獲取表格中的數(shù)據(jù)。一個(gè)Workbook
對(duì)象代表一個(gè)Excel文檔,因此在操作一個(gè)Excel之前,應(yīng)該先創(chuàng)建一個(gè)Workbook
對(duì)象。對(duì)于創(chuàng)建一個(gè)新的Excel文檔,直接進(jìn)行Workbook類調(diào)用即可。對(duì)于讀取一個(gè)已有的Excel文檔,可以使用openxpyxl模塊的load_workbook函數(shù)。該函數(shù)接受多個(gè)參數(shù),但只有filename參數(shù)為必傳參數(shù)。filenmame
可以是一個(gè)文件名,也可以是一個(gè)打開的文件對(duì)象。
Workbook對(duì)象有很多的屬性和方法:
- 1、active:獲取活躍的Worksheet;
- 2、read_only:是否以read_only模式打開Excel文檔;
- 3、encoding:文檔的字符集編碼:
- 4、properties:文檔的元數(shù)據(jù),如標(biāo)題,創(chuàng)建者,創(chuàng)建日期等;
- 5、worksheets:以列表的形式返回所有的Worksheet。
Workbook對(duì)象的方法:
- 1、get_sheet_names:獲取所有表格的名稱;
- 2、get_sheet_by_name:通過表格名稱獲取Worksheet對(duì)象;
- 3、get_active_sheet:獲取活躍的表格;
- 4、remove_sheet:刪除一個(gè)表格;
- 5、create_sheet:創(chuàng)建一個(gè)空的表格;
- 6、copy_worksheet:在Workbook內(nèi)拷貝表格。
常用的Worksheet屬性:
- 1、title:表格的標(biāo)題;
- 2、dimensions表格的大小,這里的大小是指有含有數(shù)據(jù)的表格大小。
- 3、max_row表格的最大行;
- 4、min_row表格的最小行;
- 5、max_column表格的最大列;
- 6、min_column表格的最小列;
- 7、rows按行獲取單元格(Cell對(duì)象);
- 8、columns按列獲取單元格(Cell 對(duì)象);
- 9、freeze_panes凍結(jié)窗格;
- 10、values按行獲取表格的(數(shù)據(jù));
import openpyxl wb = openpyxl.load_workbook('book2.xlsx') print(wb.active) print(wb.read_only) print(wb.worksheets) print(wb.get_sheet_names()) print(wb.get_active_sheet()) sheet = wb.get_sheet_by_name('Sheet1') print(sheet.max_row) for row in sheet.values: ? ? print(*row)
創(chuàng)建和修改excel:
from openpyxl import Workbook wb = Workbook() #默認(rèn)創(chuàng)建一個(gè)sheet sheet = wb.active sheet.title = 'test1' sheet0 = wb.create_sheet(index=0, title="test0") #又創(chuàng)建一個(gè)sheet,并且放到第一位 sheet0['A1'] = '姓名' sheet0['A2'] = 'ok' wb.save('abc.xlsx')
如果文件已經(jīng)存在,會(huì)刪除文件重新建立。
例子:求RECORD
這一列值的合計(jì),并寫入下最后一行
import openpyxl wb = openpyxl.load_workbook('test.xlsx') #打開文件 sheet = wb.get_sheet_by_name('Sheet1') #獲取第一個(gè)sheet sum = 0.00 for row in range(2,sheet.max_row+1): #從第二行到最后一行 ? ? scores = sheet.cell(row,column=3).value #獲取第三列 ? ? sum = sum + scores sheet.cell(column=3, row=sheet.max_row+1, value=sum) #最后一行賦值 wb.save('test.xlsx')
原文鏈接:https://blog.51cto.com/u_3764469/5038928
相關(guān)推薦
- 2022-11-22 Python網(wǎng)絡(luò)請(qǐng)求模塊urllib與requests使用介紹_python
- 2022-03-15 azkaban.utils.UndefinedPropertyException: Missing
- 2022-04-18 Python簡(jiǎn)單的GUI程序示例詳解_python
- 2022-09-03 pandas?如何保存數(shù)據(jù)到excel,csv_python
- 2022-02-18 引入redis報(bào)錯(cuò)Bean method ‘redisConnectionFactory‘ not
- 2023-01-29 Python??序列化反序列化和異常處理的問題小結(jié)_python
- 2022-05-18 python操作jira添加模塊的方法_python
- 2022-04-11 左DIV寬度固定,右DIV適應(yīng)剩下的寬度
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支