python?openpyxl操作Excel的安裝使用
引言
由于單位有任務(wù),需要按照名冊制作多個(gè)工作表。手動(dòng)復(fù)制和修改內(nèi)容太費(fèi)事了,所以使用 python 完成此項(xiàng)工作,為之后的此類工作提供一個(gè)通用腳本。
安裝依賴庫
pip install openpyxl lxml
我們需要用到 openpyxl。在官方文檔中提到,如果需要處理較大的文件,在安裝了 lxml 后會(huì)非常有用,而且 python 在解析一些 html 和其他文本時(shí)也會(huì)用到 lxml,所以借這個(gè)機(jī)會(huì)安裝完成。
如果在操作 Excel 時(shí)需要處理圖片,還需要安裝 pillow
pip install pillow
這樣我們就把全部依賴安裝好了。
使用
在操作之前,我先說一下需求。單位已經(jīng)給我了一個(gè)考評表模板,需要根據(jù)這個(gè)模板,按名冊生成工作表(sheet),并把每一個(gè)工作表的名稱改成名冊中的名字。每一個(gè)工作表需要修改天填表日期,分?jǐn)?shù),和扣分項(xiàng)。
這樣就有了思路,簡單來說就是打開一個(gè) Excel 表格,先按照名冊的人數(shù)復(fù)制工作表,把工作表的名稱替換成名冊中的名字,再把每個(gè)工作表中對應(yīng)坐標(biāo)格內(nèi)的數(shù)據(jù)批量(隨機(jī))修改。
因?yàn)槲覀儾僮饕呀?jīng)存在的文件,所以直接加載文件就行。我們通過 faker 庫生成若干虛擬名字,這樣一個(gè)名冊就準(zhǔn)備好了。接下來就是復(fù)制工作表了。
import openpyxl # 文件位置 doc_path = "~/考評表.xlsx" # 加載文件 wb = openpyxl.load_workbook(doc_path) # 注:names 列表通過 faker 庫生成 names = ['鄧淑蘭','董鳳蘭','田洋','陳波','逯麗','柯金鳳','王勇','陳玉梅','王飛','殷秀芳','胡旭','韓玲','李杰','陳建軍','張楊','蔡成','徐倩','賈穎','劉峰','陳桂珍','宋淑珍','蘇紅霞','杜玉','林輝','陳佳','朱軍','羅洋','王亮','王鵬','黃東']
我們根據(jù)名冊數(shù)量,復(fù)制相應(yīng)數(shù)量工作表并保存。
# 復(fù)制 sheet 工作表 people_number = len(names) for item in range(1, people_number): ws = wb.active target = wb.copy_worksheet(ws) wb.save(doc_path)
再根據(jù)名稱批量修改工作表。
# 根據(jù)姓名列表修改工作表名稱 sheet_names = wb.sheetnames for num, item in enumerate(sheet_names): open_sheet = wb[item] open_sheet.title = names[num] wb.save(doc_path)
再根據(jù)需求完成工作表的遍歷修改,因?yàn)槊恳粋€(gè)工作表相當(dāng)于用坐標(biāo)表示的,所以我們只要根據(jù)坐標(biāo)來批量或隨機(jī)修改工作表中的內(nèi)容。
例如考評表中分?jǐn)?shù)在 A17 的格子內(nèi),那我們遍歷所有的工作表,修改 A17 的格子。
# 得分所在坐標(biāo) record_loc = "A17" # 修改姓名和得分 for item in wb.sheetnames: ws = wb[item] ws[record_loc] = f"姓名:{item} 得分:{random.choice([90, 100])}" wb.save(doc_path)
這些操作基本就把所有的表格修改完成,如果得分是在某個(gè)范圍,我們就可以使用 random 函數(shù)隨機(jī)打分,并通過對應(yīng)表格中的扣分項(xiàng)隨機(jī)扣分。實(shí)現(xiàn)批量操作表格的目的。
以上就是python openpyxl操作Excel的安裝使用的詳細(xì)內(nèi)容,更多關(guān)于python openpyxl操作Excel的資料請關(guān)注腳本之家其它相關(guān)文章!
- Python使用pandas和openpyxl讀取Excel表格的方法詳解
- python使用openpyxl打開及讀取excel表格過程
- python使用openpyxl實(shí)現(xiàn)對excel表格相對路徑的超鏈接的創(chuàng)建方式
- python openpyxl提取Excel圖片實(shí)現(xiàn)原理技巧
- python使用openpyxl庫處理Excel文件詳細(xì)教程
- Python通過OpenPyXL處理Excel的完整教程
- python使用openpyxl庫讀取Excel文件數(shù)據(jù)
- python如何通過openpyxl讀寫Excel文件
- Python?Excel操作從零學(xué)習(xí)掌握openpyxl用法
- 使用python中的openpyxl操作excel詳解
- python操作Excel神器openpyxl看這一篇就夠了
- python使用Openpyxl操作Excel文件的實(shí)現(xiàn)
相關(guān)文章
Django之第三方平臺(tái)QQ授權(quán)登錄的實(shí)現(xiàn)
本文主要介紹了Django之第三方平臺(tái)QQ授權(quán)登錄的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05python獲取服務(wù)器響應(yīng)cookie的實(shí)例
今天小編就為大家分享一篇python獲取服務(wù)器響應(yīng)cookie的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12python內(nèi)置模塊OS?實(shí)現(xiàn)SHELL端文件處理器
這篇文章主要介紹了python內(nèi)置模塊OS實(shí)現(xiàn)SHELL端文件處理器,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09基于深度學(xué)習(xí)和OpenCV實(shí)現(xiàn)目標(biāo)檢測
這篇文章主要介紹了通過使用OpenCV進(jìn)行基于深度學(xué)習(xí)的對象檢測以及使用OpenCV檢測視頻,文中的示例代碼講解詳細(xì),需要的可以參考一下2021-12-12python實(shí)現(xiàn)遍歷文件夾圖片并重命名
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)遍歷文件夾圖片并重命名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03python多進(jìn)程并發(fā)demo實(shí)例解析
這篇文章主要介紹了python多進(jìn)程并發(fā)demo實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python使用Beautiful Soup包編寫爬蟲時(shí)的一些關(guān)鍵點(diǎn)
這篇文章主要介紹了Python使用Beautiful Soup包編寫爬蟲時(shí)的一些關(guān)鍵點(diǎn),文中講到了parent屬性的使用以及soup的編碼問題,需要的朋友可以參考下2016-01-01