久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Python實(shí)現(xiàn)同一張excel表格所有sheet中相同項(xiàng)目名稱對應(yīng)的數(shù)據(jù)匯總

 lunabook 2023-10-12 發(fā)布于湖北

說來慚愧,,學(xué)習(xí)Python已有兩年之久,,從在公開征集一起零基礎(chǔ)學(xué)Python的學(xué)友之后,,每年只在下半年斷斷續(xù)續(xù)看完兩本書籍,,聽過2門課程,學(xué)完之后仍然什么代碼都不會寫,。

為了以完成某一目標(biāo)而學(xué)習(xí),,設(shè)置了一大堆需要python幫助提高工作效率的學(xué)習(xí)目標(biāo),基本只能寫兩三行代碼,后面就不知道怎么去實(shí)現(xiàn)了,。

在聽了楊洋老師的《全民一起玩Python》幾節(jié)提高課之后,,我決定再次動手試一試,通過python幫助我完成一個(gè)亟需解決的任務(wù),。

我一如既往的打開pycharm,,使用openpyxl打開一張excel表格,使用for循環(huán)獲取所有的sheet,,掃描每個(gè)sheet里面的每個(gè)單元格,,找到我想要的那個(gè)項(xiàng)目名稱……又進(jìn)行不下去了。不過這次,,我的思維比之前開闊了許多,。

我通過python代碼找到我需要的那個(gè)項(xiàng)目名稱,但是項(xiàng)目名稱對應(yīng)的數(shù)值眼看著就在那一行的第三列,,但不能直接使用字母和數(shù)字來表示單元格,,而要使用變量來實(shí)現(xiàn),這個(gè)要怎么操作呢,?思考了一會兒,,我發(fā)現(xiàn)是我沒學(xué)透openpyxl這個(gè)模塊的原因。

我找到openpyxl官網(wǎng),,認(rèn)認(rèn)真真的從頭開始跟著敲了一遍代碼,,在python的自帶程序IDLE(Python3.8)里面變著花樣的反復(fù)練習(xí)。敲到這里的時(shí)候,,我終于有了一點(diǎn)新發(fā)現(xiàn):

>>> colC = ws['C']>>> col_range = ws['C:D']>>> row10 = ws[10]>>> row_range = ws[5:10]

原來,,行和列可以通過方括號來解決。比如'A3',,可以使用ws[列][行]來實(shí)現(xiàn),,我可以定義兩個(gè)變量來代替列和行,還可以讓列和行加上數(shù)字,。

開始試驗(yàn),,終于得到了我想要的效果,。再加上之前的一點(diǎn)點(diǎn)知識,。我的這個(gè)小任務(wù)終于完成了。代碼如下:

#導(dǎo)入openpyxl模塊import openpyxl#打開excel文件wb = openpyxl.load_workbook('d:/study_work/資金匯總.xlsx')
#獲取所有sheet的名稱sheets = wb.sheetnames
#定義一個(gè)列表,,用來存儲每個(gè)sheet中符合條件的數(shù)據(jù)data_1 = []
#遍歷每個(gè)sheetfor sheet in sheets: #獲取當(dāng)前sheet ws = wb[sheet] #遍歷每一行 for row in ws.rows: #遍歷每一列        for cell in row:            #如果這個(gè)單元格的值等于'生態(tài)環(huán)?!?/span>            if cell.value == '生態(tài)環(huán)保':                #把這個(gè)單元格的值賦值給一個(gè)變量 huanbao = cell.value                #滿足條件的行的變量名 row_1 = cell.row                #滿足條件的列的變量名往后加兩列 col_1 = cell.column + 2                #這一行的往后加兩列的單元格變量                value_1 = ws[row_1][col_1]                #打印 print(value_1)                #把滿足條件的單元格數(shù)值添加到之前定義的列表里 data_1.append(value_1.value)
#對列表中所有的數(shù)值求和,并只保存兩位小數(shù)summ_1 = round(sum(data_1), 2)
#打開我想要的結(jié)果print(f'{huanbao}合計(jì)金額為{summ_1}元,。')         

項(xiàng)目名稱可以根據(jù)自己想要查詢的條件自行修改,。當(dāng)然了excel表格自帶的【合并計(jì)算】功能也可以完成這個(gè)結(jié)果,但是我的這個(gè)excel表格里有十幾個(gè)sheet,使用自帶功能需要一個(gè)個(gè)手動選擇,,比較麻煩,。況且我正在學(xué)習(xí)python,剛好可以練習(xí)一下,。

以上代碼可能不夠生簡潔優(yōu)雅,,但作為一個(gè)編程初學(xué)者,能通過學(xué)習(xí)來實(shí)現(xiàn)工作中的一個(gè)小任務(wù),,非常開心,。

這里只是想分享一個(gè)學(xué)習(xí)python編程的思路。除了看書,,跟著視頻課程操作,,最重要的是要自己從最基礎(chǔ)的部分跟著敲代碼,邊操作還要反復(fù)思考,,能不能換代碼實(shí)現(xiàn)相同的效果,,舉一反三。

看書和聽課的最大作用在于跟著大師們學(xué)習(xí)編程思路和高級用法,,思路打開了,,想要實(shí)現(xiàn)某個(gè)任務(wù),可以在網(wǎng)上搜索他人的代碼學(xué)習(xí),。最后,,千叮萬囑,在使用某個(gè)模塊的時(shí)候,,一定要知道它的一些最基本的用法,,這樣才能做到靈活運(yùn)用。

參考資料

[1]https://www./questions/simple/j2ii87

[2]https://openpyxl./en/stable/tutorial.html

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多