最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python輕松實(shí)現(xiàn)添加與刪除Excel工作表的實(shí)戰(zhàn)指南

 更新時(shí)間:2026年04月14日 08:16:06   作者:站大爺IP  
這篇文章主要介紹了如何使用Python中的openpyxl庫(kù)批量處理Excel文件的方法,主要包括添加和刪除Excel工作表,感興趣的小伙伴可以了解一下

?早上九點(diǎn),我剛打開(kāi)電腦,同事小張就抱著一摞Excel文件沖了過(guò)來(lái)。

“幫幫忙,我這二十多個(gè)Excel文件,每個(gè)里面都要加一個(gè)匯總工作表,還要把那個(gè)舊的測(cè)試表刪掉。我一個(gè)一個(gè)手動(dòng)操作,弄到明年也弄不完啊。”

我看了看他那生無(wú)可戀的表情,笑了笑說(shuō):“別急,Python幾行代碼就搞定了。”

小張一臉懷疑:“Python還能干這個(gè)?”

當(dāng)然能。而且比你想象的要簡(jiǎn)單得多。

準(zhǔn)備工作:裝個(gè)庫(kù)就行

要用Python操作Excel,我們需要一個(gè)叫openpyxl的庫(kù)。它就像是一個(gè)翻譯官,讓Python能聽(tīng)懂Excel說(shuō)的話。

打開(kāi)命令行,輸入這一行:

pip install openpyxl

如果你用的是Jupyter Notebook或者Anaconda,也可以用:

conda install openpyxl

裝好了之后,我們就可以開(kāi)始玩了。

第一個(gè)例子:打開(kāi)一個(gè)Excel文件

假設(shè)我們有一個(gè)叫“銷售數(shù)據(jù).xlsx”的文件,里面已經(jīng)有一些工作表了。

from openpyxl import load_workbook

# 加載Excel文件
wb = load_workbook('銷售數(shù)據(jù).xlsx')

# 看看里面有哪些工作表
print(wb.sheetnames)

運(yùn)行這段代碼,你會(huì)看到類似這樣的輸出:

['一月銷售', '二月銷售', '三月銷售', '舊數(shù)據(jù)_不要?jiǎng)?#39;]

好了,現(xiàn)在我們能看到這個(gè)Excel文件里到底藏了幾個(gè)工作表。

添加新工作表:真的就一行代碼

小張的第一個(gè)需求是加一個(gè)匯總表。怎么做呢?

# 在最后面添加一個(gè)叫“季度匯總”的工作表
wb.create_sheet('季度匯總')

# 保存文件
wb.save('銷售數(shù)據(jù).xlsx')

就這么簡(jiǎn)單。create_sheet這個(gè)方法就是用來(lái)創(chuàng)建新工作表的。

如果你想把這個(gè)新工作表放在最前面,可以這樣寫(xiě):

# 在第一個(gè)位置插入新工作表
wb.create_sheet('季度匯總', 0)

那個(gè)0表示位置索引。0就是第一個(gè),1就是第二個(gè),依此類推。

小張看完這段代碼,瞪大了眼睛:“就這?我手動(dòng)點(diǎn)半天,你一行代碼就搞定了?”

我點(diǎn)點(diǎn)頭:“Python就是干這個(gè)用的。”

刪除工作表:同樣簡(jiǎn)單

小張的第二個(gè)需求是刪掉那個(gè)叫“舊數(shù)據(jù)_不要?jiǎng)?rdquo;的工作表。

刪除操作也很直接:

# 獲取要?jiǎng)h除的工作表
old_sheet = wb['舊數(shù)據(jù)_不要?jiǎng)?]

# 刪除它
wb.remove(old_sheet)

# 保存
wb.save('銷售數(shù)據(jù).xlsx')

注意一個(gè)坑:刪除工作表之后,一定要記得保存。不保存的話,原文件不會(huì)發(fā)生任何變化。

還有一個(gè)更簡(jiǎn)潔的寫(xiě)法:

# 一行搞定
wb.remove(wb['舊數(shù)據(jù)_不要?jiǎng)?])
wb.save('銷售數(shù)據(jù).xlsx')

小張看到這里,已經(jīng)開(kāi)始興奮了:“那我要處理二十多個(gè)文件,是不是寫(xiě)個(gè)循環(huán)就行了?”

“聰明。”

批量處理:讓電腦幫你干活

小張的實(shí)際情況是:一個(gè)文件夾里有二十多個(gè)Excel文件,每個(gè)都要做同樣的操作——添加“匯總”表,刪除“臨時(shí)”表。

我們寫(xiě)個(gè)循環(huán)來(lái)解決:

import os
from openpyxl import load_workbook

# 存放Excel文件的文件夾路徑
folder_path = 'C:/銷售數(shù)據(jù)/'

# 遍歷文件夾里所有的文件
for filename in os.listdir(folder_path):
    if filename.endswith('.xlsx'):  # 只處理Excel文件
        file_path = os.path.join(folder_path, filename)
        
        # 打開(kāi)文件
        wb = load_workbook(file_path)
        
        # 添加匯總表(如果還沒(méi)有的話)
        if '匯總' not in wb.sheetnames:
            wb.create_sheet('匯總')
        
        # 刪除臨時(shí)表(如果存在的話)
        if '臨時(shí)' in wb.sheetnames:
            wb.remove(wb['臨時(shí)'])
        
        # 保存修改
        wb.save(file_path)
        print(f'處理完成:{filename}')

print('全部搞定!')

跑完這個(gè)腳本,小張那二十多個(gè)文件就全部處理好了。他只需要去泡杯咖啡,回來(lái)就能看到結(jié)果。

避坑指南:新手最容易踩的五個(gè)坑

坑一:忘記保存

這是最常見(jiàn)的問(wèn)題。代碼寫(xiě)完了,運(yùn)行也沒(méi)報(bào)錯(cuò),但打開(kāi)Excel一看,什么都沒(méi)變。

原因很簡(jiǎn)單:忘了寫(xiě)wb.save()。

記住一個(gè)原則:load_workbook只是把文件讀到內(nèi)存里,所有修改都只是在內(nèi)存中。只有執(zhí)行save,才會(huì)真正寫(xiě)回硬盤(pán)。

坑二:刪除不存在的工作表

如果你試圖刪除一個(gè)不存在的工作表,Python會(huì)直接報(bào)錯(cuò)。

# 這樣寫(xiě),如果工作表不存在就會(huì)報(bào)錯(cuò)
wb.remove(wb['不存在的表'])  # 報(bào)錯(cuò)!

安全的寫(xiě)法是先判斷一下:

if '不存在的表' in wb.sheetnames:
    wb.remove(wb['不存在的表'])

坑三:工作表名字不能重復(fù)

Excel不允許同一個(gè)文件里有重名的工作表。如果你嘗試創(chuàng)建兩個(gè)同名的表,Python會(huì)報(bào)錯(cuò)。

wb.create_sheet('匯總')
wb.create_sheet('匯總')  # 報(bào)錯(cuò)!名字重復(fù)了

要么先檢查是否存在:

if '匯總' not in wb.sheetnames:
    wb.create_sheet('匯總')

要么換個(gè)名字:

wb.create_sheet('匯總_v2')

坑四:文件被占用

如果你在運(yùn)行Python腳本的時(shí)候,Excel文件正被其他程序(比如你手動(dòng)打開(kāi)的Excel)打開(kāi)著,Python就沒(méi)法寫(xiě)入。

解決方法:關(guān)掉那個(gè)文件,或者換個(gè)沒(méi)被占用的文件。

坑五:openpyxl不支持.xls文件

openpyxl只能處理.xlsx格式的文件。如果你遇到老舊的.xls文件,需要用另一個(gè)庫(kù)叫xlrdxlwt。

如果實(shí)在需要處理.xls文件,最簡(jiǎn)單的辦法是先用Excel把它另存為.xlsx格式。

玩點(diǎn)高級(jí)的:添加帶數(shù)據(jù)的工作表

光添加一個(gè)空表可能還不夠。有時(shí)候我們想在新表里填上一些數(shù)據(jù),比如匯總統(tǒng)計(jì)。

來(lái)看個(gè)例子:把所有月份的數(shù)據(jù)匯總到一個(gè)新表里。

from openpyxl import load_workbook

wb = load_workbook('銷售數(shù)據(jù).xlsx')

# 創(chuàng)建匯總表
summary_sheet = wb.create_sheet('自動(dòng)匯總')

# 寫(xiě)個(gè)標(biāo)題
summary_sheet['A1'] = '月份'
summary_sheet['B1'] = '總銷售額'

# 從各個(gè)月份的表里收集數(shù)據(jù)
row_num = 2
for month in ['一月銷售', '二月銷售', '三月銷售']:
    if month in wb.sheetnames:
        month_sheet = wb[month]
        
        # 假設(shè)每個(gè)月的表里,B列是銷售額,從第2行到第10行
        total = 0
        for row in range(2, 11):
            cell_value = month_sheet.cell(row, 2).value
            if cell_value and isinstance(cell_value, (int, float)):
                total += cell_value
        
        # 寫(xiě)入?yún)R總表
        summary_sheet.cell(row_num, 1, month)
        summary_sheet.cell(row_num, 2, total)
        row_num += 1

wb.save('銷售數(shù)據(jù)_帶匯總.xlsx')

這樣跑完之后,新生成的Excel文件里就多了一個(gè)“自動(dòng)匯總”表,里面整整齊齊地列著每個(gè)月的總銷售額。

更優(yōu)雅的寫(xiě)法:使用with語(yǔ)句

每次都要手動(dòng)save,有時(shí)候會(huì)忘記。Python提供了一個(gè)更優(yōu)雅的寫(xiě)法,叫做上下文管理器。不過(guò)openpyxl本身不直接支持,我們可以自己封裝一下:

from openpyxl import load_workbook

def process_excel(file_path):
    wb = load_workbook(file_path)
    # 在這里做各種操作
    wb.create_sheet('新表')
    # 自動(dòng)保存
    wb.save(file_path)

process_excel('我的文件.xlsx')

把操作寫(xiě)成一個(gè)函數(shù),調(diào)用完自動(dòng)保存,這樣就不容易忘了。

實(shí)戰(zhàn)小項(xiàng)目:清理Excel工具箱

最后,我們來(lái)做一個(gè)實(shí)用的小工具。它可以:

  1. 刪除所有名字里帶“備份”的工作表
  2. 在每個(gè)文件開(kāi)頭添加一個(gè)“目錄”工作表
  3. 把所有工作表的名字列在目錄里
import os
from openpyxl import load_workbook

def clean_and_add_catalog(folder_path):
    for filename in os.listdir(folder_path):
        if not filename.endswith('.xlsx'):
            continue
        
        file_path = os.path.join(folder_path, filename)
        print(f'正在處理:{filename}')
        
        wb = load_workbook(file_path)
        
        # 找出所有帶“備份”的工作表并刪除
        sheets_to_delete = [s for s in wb.sheetnames if '備份' in s]
        for sheet_name in sheets_to_delete:
            wb.remove(wb[sheet_name])
            print(f'  已刪除:{sheet_name}')
        
        # 在第一個(gè)位置創(chuàng)建目錄表
        catalog = wb.create_sheet('目錄', 0)
        catalog['A1'] = '工作表目錄'
        catalog['A2'] = '序號(hào)'
        catalog['B2'] = '工作表名稱'
        
        # 列出所有剩余的工作表
        for idx, sheet_name in enumerate(wb.sheetnames[1:], start=1):  # 跳過(guò)目錄表自己
            catalog.cell(idx + 2, 1, idx)
            catalog.cell(idx + 2, 2, sheet_name)
        
        wb.save(file_path)
        print(f'  完成!剩余工作表:{wb.sheetnames[1:]}\n')

# 使用
clean_and_add_catalog('C:/我的Excel文件/')

這個(gè)工具跑完,每個(gè)文件都會(huì)變得更干凈、更好用。

總結(jié)一下(別擔(dān)心,很短)

Python操作Excel工作表,核心就三個(gè)動(dòng)作:

  • 加載load_workbook('文件.xlsx')
  • 添加create_sheet('表名')
  • 刪除remove(工作表對(duì)象)
  • 保存save('文件.xlsx')

會(huì)了這三個(gè),再加上一個(gè)循環(huán),就能處理成百上千個(gè)文件。

小張后來(lái)請(qǐng)我喝了杯咖啡。他說(shuō):“早知道Python這么方便,我過(guò)去那些加班的晚上都白費(fèi)了。”

我說(shuō):“沒(méi)事,現(xiàn)在開(kāi)始用,以后就不用加班了。”

他笑了笑,回去繼續(xù)寫(xiě)他的Python腳本去了。這次不是為了加班,而是為了早點(diǎn)下班。

?以上就是使用Python輕松實(shí)現(xiàn)添加與刪除Excel工作表的實(shí)戰(zhàn)指南的詳細(xì)內(nèi)容,更多關(guān)于Python添加與刪除Excel工作表的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python實(shí)現(xiàn)多項(xiàng)式擬合正弦函數(shù)詳情

    Python實(shí)現(xiàn)多項(xiàng)式擬合正弦函數(shù)詳情

    這篇文章主要介紹了Python實(shí)現(xiàn)多項(xiàng)式擬合正弦函數(shù)詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • python pycharm最新版本激活碼(永久有效)附python安裝教程

    python pycharm最新版本激活碼(永久有效)附python安裝教程

    PyCharm是一個(gè)多功能的集成開(kāi)發(fā)環(huán)境,只需要在pycharm中創(chuàng)建python file就運(yùn)行python,并且pycharm內(nèi)置完備的功能,這篇文章給大家介紹python pycharm激活碼最新版,需要的朋友跟隨小編一起看看吧
    2020-01-01
  • pyspark 隨機(jī)森林的實(shí)現(xiàn)

    pyspark 隨機(jī)森林的實(shí)現(xiàn)

    這篇文章主要介紹了pyspark 隨機(jī)森林的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python如何利用%操作符格式化字符串詳解

    Python如何利用%操作符格式化字符串詳解

    %是Python風(fēng)格的字符串格式化操作符,非常類似C語(yǔ)言里的printf()函數(shù)的字符串格式化,下面這篇文章主要給大家介紹了關(guān)于Python如何利用%操作符格式化字符串的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • 使用python+pygame開(kāi)發(fā)消消樂(lè)游戲附完整源碼

    使用python+pygame開(kāi)發(fā)消消樂(lè)游戲附完整源碼

    消消樂(lè)小游戲相信大家都玩過(guò),大人小孩都喜歡玩的一款小游戲,那么基于程序是如何實(shí)現(xiàn)的呢?今天帶大家,用python+pygame來(lái)實(shí)現(xiàn)一下這個(gè)花里胡哨的消消樂(lè)小游戲功能,感興趣的朋友一起看看吧
    2021-06-06
  • python實(shí)現(xiàn)打磚塊游戲

    python實(shí)現(xiàn)打磚塊游戲

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)打磚塊游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Python四大金剛之元組詳解

    Python四大金剛之元組詳解

    這篇文章主要介紹了Python的元組,小編覺(jué)得這篇文章寫(xiě)的還不錯(cuò),需要的朋友可以參考下,希望能夠給你帶來(lái)幫助
    2021-10-10
  • python使用whisper讀取藍(lán)牙耳機(jī)語(yǔ)音并轉(zhuǎn)為文字

    python使用whisper讀取藍(lán)牙耳機(jī)語(yǔ)音并轉(zhuǎn)為文字

    這篇文章主要為大家詳細(xì)介紹了python如何使用whisper讀取藍(lán)牙耳機(jī)語(yǔ)音并識(shí)別轉(zhuǎn)為文字,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-05-05
  • Python找出list中最常出現(xiàn)元素的方法

    Python找出list中最常出現(xiàn)元素的方法

    這篇文章主要介紹了Python找出list中最常出現(xiàn)元素的方法,給出了三種常用的方法供大家對(duì)比參考,需要的朋友可以參考下
    2016-06-06
  • Python ATM功能實(shí)現(xiàn)代碼實(shí)例

    Python ATM功能實(shí)現(xiàn)代碼實(shí)例

    這篇文章主要介紹了Python ATM功能實(shí)現(xiàn)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論

衡阳县| 丰原市| 连州市| 安图县| 白银市| 明星| 赣榆县| 丹阳市| 通辽市| 六枝特区| 镇赉县| 铜梁县| 黄陵县| 阿勒泰市| 佛山市| 台中市| 增城市| 炉霍县| 会宁县| 凌源市| 通河县| 建湖县| 阿巴嘎旗| 乌拉特前旗| 保靖县| 修武县| 禹城市| 遂川县| 柳州市| 简阳市| 贵定县| 醴陵市| 庆安县| 会昌县| 吴桥县| 喀喇沁旗| 陕西省| 乐安县| 灵石县| 岑巩县| 壶关县|