python?openpyxl操作Excel的安裝使用
引言
由于單位有任務(wù),需要按照名冊(cè)制作多個(gè)工作表。手動(dòng)復(fù)制和修改內(nèi)容太費(fèi)事了,所以使用 python 完成此項(xiàng)工作,為之后的此類工作提供一個(gè)通用腳本。
安裝依賴庫(kù)
pip install openpyxl lxml
我們需要用到 openpyxl。在官方文檔中提到,如果需要處理較大的文件,在安裝了 lxml 后會(huì)非常有用,而且 python 在解析一些 html 和其他文本時(shí)也會(huì)用到 lxml,所以借這個(gè)機(jī)會(huì)安裝完成。
如果在操作 Excel 時(shí)需要處理圖片,還需要安裝 pillow
pip install pillow
這樣我們就把全部依賴安裝好了。
使用
在操作之前,我先說一下需求。單位已經(jīng)給我了一個(gè)考評(píng)表模板,需要根據(jù)這個(gè)模板,按名冊(cè)生成工作表(sheet),并把每一個(gè)工作表的名稱改成名冊(cè)中的名字。每一個(gè)工作表需要修改天填表日期,分?jǐn)?shù),和扣分項(xiàng)。
這樣就有了思路,簡(jiǎn)單來(lái)說就是打開一個(gè) Excel 表格,先按照名冊(cè)的人數(shù)復(fù)制工作表,把工作表的名稱替換成名冊(cè)中的名字,再把每個(gè)工作表中對(duì)應(yīng)坐標(biāo)格內(nèi)的數(shù)據(jù)批量(隨機(jī))修改。
因?yàn)槲覀儾僮饕呀?jīng)存在的文件,所以直接加載文件就行。我們通過 faker 庫(kù)生成若干虛擬名字,這樣一個(gè)名冊(cè)就準(zhǔn)備好了。接下來(lái)就是復(fù)制工作表了。
import openpyxl # 文件位置 doc_path = "~/考評(píng)表.xlsx" # 加載文件 wb = openpyxl.load_workbook(doc_path) # 注:names 列表通過 faker 庫(kù)生成 names = ['鄧淑蘭','董鳳蘭','田洋','陳波','逯麗','柯金鳳','王勇','陳玉梅','王飛','殷秀芳','胡旭','韓玲','李杰','陳建軍','張楊','蔡成','徐倩','賈穎','劉峰','陳桂珍','宋淑珍','蘇紅霞','杜玉','林輝','陳佳','朱軍','羅洋','王亮','王鵬','黃東']
我們根據(jù)名冊(cè)數(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)來(lái)批量或隨機(jī)修改工作表中的內(nèi)容。
例如考評(píng)表中分?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ī)打分,并通過對(duì)應(yīng)表格中的扣分項(xiàng)隨機(jī)扣分。實(shí)現(xiàn)批量操作表格的目的。
以上就是python openpyxl操作Excel的安裝使用的詳細(xì)內(nèi)容,更多關(guān)于python openpyxl操作Excel的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Python使用pandas和openpyxl讀取Excel表格的方法詳解
- python使用openpyxl打開及讀取excel表格過程
- python使用openpyxl實(shí)現(xiàn)對(duì)excel表格相對(duì)路徑的超鏈接的創(chuàng)建方式
- python openpyxl提取Excel圖片實(shí)現(xiàn)原理技巧
- python使用openpyxl庫(kù)處理Excel文件詳細(xì)教程
- Python通過OpenPyXL處理Excel的完整教程
- python使用openpyxl庫(kù)讀取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)文章
PyTorch中的參數(shù)類torch.nn.Parameter()詳解
這篇文章主要給大家介紹了關(guān)于PyTorch中torch.nn.Parameter()的相關(guān)資料,要內(nèi)容包括基礎(chǔ)應(yīng)用、實(shí)用技巧、原理機(jī)制等方面,文章通過實(shí)例介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02
利用python下載scihub成文獻(xiàn)為PDF操作
這篇文章主要介紹了利用python下載scihub成文獻(xiàn)為PDF操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-07-07
OpenCV+Python3.5 簡(jiǎn)易手勢(shì)識(shí)別的實(shí)現(xiàn)
這篇文章主要介紹了OpenCV+Python3.5 簡(jiǎn)易手勢(shì)識(shí)別的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析
這篇文章主要介紹了如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
ROS系統(tǒng)將python包編譯為可執(zhí)行文件的簡(jiǎn)單步驟
本文章講述ROS系統(tǒng)下如何將python編譯為可以執(zhí)行文件,步驟比較簡(jiǎn)單,感興趣的朋友跟隨小編一起看看吧2021-07-07
對(duì)Python中一維向量和一維向量轉(zhuǎn)置相乘的方法詳解
今天小編就為大家分享一篇對(duì)Python中一維向量和一維向量轉(zhuǎn)置相乘的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-08-08
利用Python3分析sitemap.xml并抓取導(dǎo)出全站鏈接詳解
因?yàn)樽罱鼡Q了網(wǎng)址,所以需要在百度站長(zhǎng)平臺(tái)提交網(wǎng)址,不管是主動(dòng)推送還是手動(dòng)提交,前提都是要整理網(wǎng)站的鏈接,手動(dòng)添加太麻煩,于是就想寫個(gè)腳本直接抓取全站鏈接并導(dǎo)出,本文詳細(xì)介紹的是實(shí)現(xiàn)的方法及過程,需要的朋友們一起來(lái)看看吧。2017-07-07

