Python管理Excel工作表之創(chuàng)建、復(fù)制、刪除與重命名操作詳解

在 Excel 文件處理過程中,工作表(Worksheet)是組織和分隔數(shù)據(jù)的基本單元。一個(gè) Excel 文件通常包含多個(gè)工作表,用于分別存儲(chǔ)不同類型的數(shù)據(jù)或展示不同維度的分析結(jié)果。在自動(dòng)化場景中,經(jīng)常需要通過代碼動(dòng)態(tài)地添加、復(fù)制、隱藏、移動(dòng)和刪除工作表。本文將介紹如何使用 Python 實(shí)現(xiàn)對(duì) Excel 工作表的全面管理。
環(huán)境準(zhǔn)備
本文使用 Spire.XLS for Python 來操作 Excel 文件。該庫提供了對(duì)工作表集合的完整操作接口,覆蓋日常自動(dòng)化中常見的工作表管理需求。
pip install Spire.XLS
安裝完成后,通過 spire.xls 模塊即可訪問相關(guān) API。
添加工作表
添加工作表是最基礎(chǔ)的操作。通過 Workbook 對(duì)象訪問 Worksheets 集合,調(diào)用 Add() 方法并指定工作表名稱即可創(chuàng)建新的工作表。
from spire.xls import *
# 創(chuàng)建工作簿對(duì)象
workbook = Workbook()
# 添加一個(gè)名為 "DataSheet" 的新工作表
sheet = workbook.Worksheets.Add("DataSheet")
# 在新工作表中寫入數(shù)據(jù)
sheet.Range["A1"].Text = "這是新添加的工作表"
# 保存文件
workbook.SaveToFile("AddWorksheet.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
Add() 方法返回新創(chuàng)建的工作表對(duì)象,可以直接對(duì)其進(jìn)行數(shù)據(jù)寫入和格式設(shè)置。新工作表默認(rèn)被添加到所有現(xiàn)有工作表的末尾。
復(fù)制工作表
復(fù)制工作表分為兩種場景:在同一工作簿內(nèi)復(fù)制,以及跨工作簿復(fù)制。
同一工作簿內(nèi)復(fù)制
在同一工作簿中復(fù)制工作表時(shí),需要先將源工作表的數(shù)據(jù)范圍取出,再復(fù)制到目標(biāo)工作表:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("Template.xlsx")
# 獲取源工作表
sourceSheet = workbook.Worksheets[0]
# 創(chuàng)建目標(biāo)工作表
targetSheet = workbook.Worksheets.Add("CopyOfSource")
# 復(fù)制數(shù)據(jù)
sourceRange = sourceSheet.AllocatedRange
targetSheet.CopyFrom(sourceRange, targetSheet, targetSheet.FirstRow, targetSheet.FirstColumn, True)
workbook.SaveToFile("CopyWithinWorkbook.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
CopyFrom() 方法的最后一個(gè)參數(shù)控制是否同時(shí)復(fù)制格式。設(shè)為 True 時(shí),數(shù)據(jù)、樣式、合并單元格等信息都會(huì)被完整復(fù)制。
跨工作簿復(fù)制
跨工作簿復(fù)制允許將一個(gè) Excel 文件中的工作表內(nèi)容復(fù)制到另一個(gè)文件中:
from spire.xls import *
# 加載源文件
sourceWorkbook = Workbook()
sourceWorkbook.LoadFromFile("Source.xlsx")
srcSheet = sourceWorkbook.Worksheets[0]
# 加載目標(biāo)文件
targetWorkbook = Workbook()
targetWorkbook.LoadFromFile("Target.xlsx")
# 在目標(biāo)文件中添加新工作表并復(fù)制內(nèi)容
targetSheet = targetWorkbook.Worksheets.Add("ImportedSheet")
targetSheet.CopyFrom(srcSheet)
targetWorkbook.SaveToFile("CopyAcrossWorkbooks.xlsx", ExcelVersion.Version2013)
targetWorkbook.Dispose()
sourceWorkbook.Dispose()
這種方式在數(shù)據(jù)匯總場景中非常實(shí)用,例如將多個(gè)部門的數(shù)據(jù)表合并到一個(gè)匯總文件中。
隱藏和顯示工作表
在某些情況下,需要隱藏包含輔助數(shù)據(jù)或中間計(jì)算結(jié)果的工作表,使文件使用者只看到關(guān)鍵信息。通過設(shè)置工作表的 Visibility 屬性可以控制其可見性:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("MultiSheet.xlsx")
# 隱藏指定工作表
workbook.Worksheets["CalcSheet"].Visibility = WorksheetVisibility.Hidden
# 顯示被隱藏的工作表
workbook.Worksheets["Report"].Visibility = WorksheetVisibility.Visible
workbook.SaveToFile("HideShowSheet.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
WorksheetVisibility 枚舉提供 Hidden 和 Visible 兩個(gè)值。隱藏工作表并不會(huì)刪除其內(nèi)容,數(shù)據(jù)仍然保留,只是在 Excel 界面中不可見。
移動(dòng)工作表
當(dāng)工作表的排列順序需要調(diào)整時(shí),可以使用 MoveWorksheet() 方法將其移動(dòng)到指定位置:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("MultiSheet.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 將其移動(dòng)到第 3 個(gè)位置(索引從 0 開始)
sheet.MoveWorksheet(2)
workbook.SaveToFile("MoveSheet.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
MoveWorksheet() 接收一個(gè)整數(shù)參數(shù),表示目標(biāo)位置的索引。移動(dòng)操作不會(huì)改變工作表的內(nèi)容和數(shù)據(jù),只調(diào)整其在標(biāo)簽欄中的排列順序。
刪除工作表
當(dāng)工作表不再需要時(shí),可以通過索引或名稱將其從工作簿中移除:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("MultiSheet.xlsx")
# 通過索引刪除工作表
workbook.Worksheets.RemoveAt(1)
# 也可以通過名稱刪除
# workbook.Worksheets.Remove("TempSheet")
workbook.SaveToFile("RemoveSheet.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
刪除操作是不可逆的,執(zhí)行后工作表及其所有數(shù)據(jù)將被永久移除。在批量刪除前,建議先通過遍歷獲取所有工作表名稱進(jìn)行確認(rèn)。
設(shè)置工作表標(biāo)簽顏色
為不同工作表的標(biāo)簽設(shè)置顏色,可以在視覺上快速區(qū)分各類數(shù)據(jù)表,提升文件的可讀性:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("MultiSheet.xlsx")
# 為不同工作表設(shè)置標(biāo)簽顏色
workbook.Worksheets[0].TabColor = Color.get_Red()
workbook.Worksheets[1].TabColor = Color.get_Green()
workbook.Worksheets[2].TabColor = Color.get_LightBlue()
workbook.SaveToFile("TabColor.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
TabColor 屬性接受 Color 對(duì)象,可以使用預(yù)定義顏色(如 Red、Green、LightBlue)或自定義 RGB 值。
凍結(jié)窗格
凍結(jié)窗格可以在滾動(dòng)時(shí)保持標(biāo)題行或列始終可見,是處理大型數(shù)據(jù)表時(shí)的常用設(shè)置:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("DataSheet.xlsx")
sheet = workbook.Worksheets[0]
# 凍結(jié)首行(第 2 行第 1 列以上的區(qū)域被凍結(jié))
sheet.FreezePanes(2, 1)
workbook.SaveToFile("FreezePanes.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
FreezePanes() 方法接收兩個(gè)參數(shù):行號(hào)和列號(hào)。指定位置上方和左側(cè)的區(qū)域?qū)⒈粌鼋Y(jié)。例如 FreezePanes(2, 1) 凍結(jié)第 1 行,FreezePanes(1, 2) 凍結(jié)第 1 列,FreezePanes(3, 2) 則同時(shí)凍結(jié)前 2 行和前 1 列。
獲取所有工作表名稱
在自動(dòng)化流程中,經(jīng)常需要先獲取文件中所有工作表的名稱,以便進(jìn)行后續(xù)操作:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("MultiSheet.xlsx")
# 遍歷并獲取所有工作表名稱
for sheet in workbook.Worksheets:
print(sheet.Name)
workbook.Dispose()
這個(gè)操作常用于動(dòng)態(tài)生成工作表列表、按名稱查找特定工作表,或在批量處理前進(jìn)行數(shù)據(jù)校驗(yàn)。
總結(jié)
本文介紹了使用 Python 管理 Excel 工作表的核心操作,包括添加、復(fù)制、隱藏、移動(dòng)、刪除工作表,以及設(shè)置標(biāo)簽顏色和凍結(jié)窗格。這些操作覆蓋了日常 Excel 自動(dòng)化中最常見的工作表管理需求。
關(guān)鍵要點(diǎn)回顧:
- 使用
Worksheets.Add()添加新工作表 - 通過
CopyFrom()實(shí)現(xiàn)工作表內(nèi)容的復(fù)制,支持同工作簿和跨工作簿場景 Visibility屬性控制工作表的顯示與隱藏MoveWorksheet()調(diào)整工作表排列順序FreezePanes()設(shè)置凍結(jié)窗格,提升大數(shù)據(jù)表的可讀性
在此基礎(chǔ)上,可以進(jìn)一步結(jié)合數(shù)據(jù)寫入、格式設(shè)置和文件轉(zhuǎn)換等功能,構(gòu)建完整的 Excel 自動(dòng)化處理流程。
以上就是Python管理Excel工作表之創(chuàng)建、復(fù)制、刪除與重命名操作詳解的詳細(xì)內(nèi)容,更多關(guān)于Python管理Excel工作表的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python基礎(chǔ)Lists和tuple實(shí)例詳解
這篇文章主要為大家介紹了Python基礎(chǔ)Lists和tuple實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
基于Python編寫自動(dòng)化郵件發(fā)送程序(進(jìn)階版)
在數(shù)字化時(shí)代,自動(dòng)化郵件發(fā)送功能已成為企業(yè)和個(gè)人提升工作效率的重要工具,本文將使用Python編寫一個(gè)簡單的自動(dòng)化郵件發(fā)送程序,希望對(duì)大家有所幫助2025-08-08
Python使用Matplotlib和Seaborn進(jìn)行數(shù)據(jù)可視化分析
Python作為數(shù)據(jù)科學(xué)領(lǐng)域的明星語言,擁有強(qiáng)大且豐富的可視化庫,其中最著名的莫過于 Matplotlib 和 Seaborn,下面我們來看看如何使用Matplotlib和Seaborn繪制常用圖表并掌握一些基本的圖表定制技巧吧2025-12-12
分享11個(gè)Python自動(dòng)化操作Excel的方法
這篇文章主要給大家分享的是11個(gè)Python自動(dòng)化操作Excel的方法,自動(dòng)化辦公,我相信很多人都有強(qiáng)烈的需求,今天我教大家如何利用Python自動(dòng)化操作Excel,需要的朋友可以參考一下2022-02-02
詳解Pycharm出現(xiàn)out of memory的終極解決方法
這篇文章主要介紹了詳解Pycharm出現(xiàn)out of memory的終極解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
python 計(jì)算積分圖和haar特征的實(shí)例代碼
今天小編就為大家分享一篇python 計(jì)算積分圖和haar特征的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
NumPy中使用省略號(hào)進(jìn)行切片的實(shí)現(xiàn)示例
NumPy中的省略號(hào)(...)用于簡化多維數(shù)組的切片操作,本文主要介紹了NumPy中使用省略號(hào)進(jìn)行切片的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-01-01

