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

在 Excel 文件處理過程中,工作表(Worksheet)是組織和分隔數(shù)據(jù)的基本單元。一個 Excel 文件通常包含多個工作表,用于分別存儲不同類型的數(shù)據(jù)或展示不同維度的分析結果。在自動化場景中,經常需要通過代碼動態(tài)地添加、復制、隱藏、移動和刪除工作表。本文將介紹如何使用 Python 實現(xiàn)對 Excel 工作表的全面管理。
環(huán)境準備
本文使用 Spire.XLS for Python 來操作 Excel 文件。該庫提供了對工作表集合的完整操作接口,覆蓋日常自動化中常見的工作表管理需求。
pip install Spire.XLS
安裝完成后,通過 spire.xls 模塊即可訪問相關 API。
添加工作表
添加工作表是最基礎的操作。通過 Workbook 對象訪問 Worksheets 集合,調用 Add() 方法并指定工作表名稱即可創(chuàng)建新的工作表。
from spire.xls import *
# 創(chuàng)建工作簿對象
workbook = Workbook()
# 添加一個名為 "DataSheet" 的新工作表
sheet = workbook.Worksheets.Add("DataSheet")
# 在新工作表中寫入數(shù)據(jù)
sheet.Range["A1"].Text = "這是新添加的工作表"
# 保存文件
workbook.SaveToFile("AddWorksheet.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
Add() 方法返回新創(chuàng)建的工作表對象,可以直接對其進行數(shù)據(jù)寫入和格式設置。新工作表默認被添加到所有現(xiàn)有工作表的末尾。
復制工作表
復制工作表分為兩種場景:在同一工作簿內復制,以及跨工作簿復制。
同一工作簿內復制
在同一工作簿中復制工作表時,需要先將源工作表的數(shù)據(jù)范圍取出,再復制到目標工作表:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("Template.xlsx")
# 獲取源工作表
sourceSheet = workbook.Worksheets[0]
# 創(chuàng)建目標工作表
targetSheet = workbook.Worksheets.Add("CopyOfSource")
# 復制數(shù)據(jù)
sourceRange = sourceSheet.AllocatedRange
targetSheet.CopyFrom(sourceRange, targetSheet, targetSheet.FirstRow, targetSheet.FirstColumn, True)
workbook.SaveToFile("CopyWithinWorkbook.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
CopyFrom() 方法的最后一個參數(shù)控制是否同時復制格式。設為 True 時,數(shù)據(jù)、樣式、合并單元格等信息都會被完整復制。
跨工作簿復制
跨工作簿復制允許將一個 Excel 文件中的工作表內容復制到另一個文件中:
from spire.xls import *
# 加載源文件
sourceWorkbook = Workbook()
sourceWorkbook.LoadFromFile("Source.xlsx")
srcSheet = sourceWorkbook.Worksheets[0]
# 加載目標文件
targetWorkbook = Workbook()
targetWorkbook.LoadFromFile("Target.xlsx")
# 在目標文件中添加新工作表并復制內容
targetSheet = targetWorkbook.Worksheets.Add("ImportedSheet")
targetSheet.CopyFrom(srcSheet)
targetWorkbook.SaveToFile("CopyAcrossWorkbooks.xlsx", ExcelVersion.Version2013)
targetWorkbook.Dispose()
sourceWorkbook.Dispose()
這種方式在數(shù)據(jù)匯總場景中非常實用,例如將多個部門的數(shù)據(jù)表合并到一個匯總文件中。
隱藏和顯示工作表
在某些情況下,需要隱藏包含輔助數(shù)據(jù)或中間計算結果的工作表,使文件使用者只看到關鍵信息。通過設置工作表的 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 兩個值。隱藏工作表并不會刪除其內容,數(shù)據(jù)仍然保留,只是在 Excel 界面中不可見。
移動工作表
當工作表的排列順序需要調整時,可以使用 MoveWorksheet() 方法將其移動到指定位置:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("MultiSheet.xlsx")
# 獲取第一個工作表
sheet = workbook.Worksheets[0]
# 將其移動到第 3 個位置(索引從 0 開始)
sheet.MoveWorksheet(2)
workbook.SaveToFile("MoveSheet.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
MoveWorksheet() 接收一個整數(shù)參數(shù),表示目標位置的索引。移動操作不會改變工作表的內容和數(shù)據(jù),只調整其在標簽欄中的排列順序。
刪除工作表
當工作表不再需要時,可以通過索引或名稱將其從工作簿中移除:
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ù)將被永久移除。在批量刪除前,建議先通過遍歷獲取所有工作表名稱進行確認。
設置工作表標簽顏色
為不同工作表的標簽設置顏色,可以在視覺上快速區(qū)分各類數(shù)據(jù)表,提升文件的可讀性:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("MultiSheet.xlsx")
# 為不同工作表設置標簽顏色
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 對象,可以使用預定義顏色(如 Red、Green、LightBlue)或自定義 RGB 值。
凍結窗格
凍結窗格可以在滾動時保持標題行或列始終可見,是處理大型數(shù)據(jù)表時的常用設置:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("DataSheet.xlsx")
sheet = workbook.Worksheets[0]
# 凍結首行(第 2 行第 1 列以上的區(qū)域被凍結)
sheet.FreezePanes(2, 1)
workbook.SaveToFile("FreezePanes.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
FreezePanes() 方法接收兩個參數(shù):行號和列號。指定位置上方和左側的區(qū)域將被凍結。例如 FreezePanes(2, 1) 凍結第 1 行,FreezePanes(1, 2) 凍結第 1 列,FreezePanes(3, 2) 則同時凍結前 2 行和前 1 列。
獲取所有工作表名稱
在自動化流程中,經常需要先獲取文件中所有工作表的名稱,以便進行后續(xù)操作:
from spire.xls import *
workbook = Workbook()
workbook.LoadFromFile("MultiSheet.xlsx")
# 遍歷并獲取所有工作表名稱
for sheet in workbook.Worksheets:
print(sheet.Name)
workbook.Dispose()
這個操作常用于動態(tài)生成工作表列表、按名稱查找特定工作表,或在批量處理前進行數(shù)據(jù)校驗。
總結
本文介紹了使用 Python 管理 Excel 工作表的核心操作,包括添加、復制、隱藏、移動、刪除工作表,以及設置標簽顏色和凍結窗格。這些操作覆蓋了日常 Excel 自動化中最常見的工作表管理需求。
關鍵要點回顧:
- 使用
Worksheets.Add()添加新工作表 - 通過
CopyFrom()實現(xiàn)工作表內容的復制,支持同工作簿和跨工作簿場景 Visibility屬性控制工作表的顯示與隱藏MoveWorksheet()調整工作表排列順序FreezePanes()設置凍結窗格,提升大數(shù)據(jù)表的可讀性
在此基礎上,可以進一步結合數(shù)據(jù)寫入、格式設置和文件轉換等功能,構建完整的 Excel 自動化處理流程。
以上就是Python管理Excel工作表之創(chuàng)建、復制、刪除與重命名操作詳解的詳細內容,更多關于Python管理Excel工作表的資料請關注腳本之家其它相關文章!
相關文章
Python使用Matplotlib和Seaborn進行數(shù)據(jù)可視化分析
Python作為數(shù)據(jù)科學領域的明星語言,擁有強大且豐富的可視化庫,其中最著名的莫過于 Matplotlib 和 Seaborn,下面我們來看看如何使用Matplotlib和Seaborn繪制常用圖表并掌握一些基本的圖表定制技巧吧2025-12-12
詳解Pycharm出現(xiàn)out of memory的終極解決方法
這篇文章主要介紹了詳解Pycharm出現(xiàn)out of memory的終極解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03

