如何使用 Python 刪除 Excel 中的行、列和單元格 – 詳解

目錄

開發環境準備

使用 Python 刪除 Excel 表格中的行

刪除特定行

刪除空白行

刪除含指定數據的行

使用 Python 刪除 Excel 表格中的列

刪除特定列

刪除空白列

刪除含指定數據的列

使用 Python 刪除 Excel 中的單元格并自動移動剩余內容

刪除特定單元格

刪除空白單元格

刪除含指定數據的單元格


Python 刪除Excel表格中的行、列和單元格

在處理Excel數據時,刪除不需要的行、列或單元格是一項常見且必要的操作。然而,當面對大量 Excel 文件或結構復雜的數據表格時,手動處理這些任務不僅效率低下,還容易因操作失誤造成數據錯誤。

使用 Python腳本,可以實現對 Excel 表格的高效自動化處理。無論是刪除指定的行或列、批量清除空白行和空白列,還是根據關鍵字篩選并刪除包含特定數據的單元格,這些操作都可以通過腳本一次性完成,大幅提升工作效率和準確性。

本文將詳細介紹如何使用 Python 刪除 Excel 中的行、列和單元格,內容涵蓋以下幾個方面:

  • 開發環境準備
  • 使用 Python 刪除 Excel 表格中的行
    • 刪除特定行
    • 刪除空白行
    • 刪除含指定數據的行
  • 使用 Python 刪除 Excel 表格中的列
    • 刪除特定列
    • 刪除空白列
    • 刪除含指定數據的列
  • 使用 Python 刪除 Excel 中的單元格并自動移動剩余內容
    • 刪除特定單元格
    • 刪除空白單元格
    • 刪除含指定數據的單元格

開發環境準備

在操作 Excel 文件之前,首先需要準備好 Python 開發環境,并引入相應的庫。本文將使用第三方庫 Spire.XLS for Python,它支持讀取、修改、寫入以及轉換 Excel 文件,且不依賴微軟Office或其他第三方軟件。

安裝 Spire.XLS

Spire.XLS 提供了兩個版本,可以根據需求選擇合適的版本:

  • 社區版:免費使用,但每個 .xls 文件限制為 200 行和 5 個工作表(.xlsx 文件沒有此限制)。安裝命令:
    pip install spire.xls.free
  • 商業版:功能完備,但會添加水印。可以在 [這里] 申請免費的測試許可證。
    安裝命令:
    pip install spire.xls

安裝完成后,即可在Python應用程序中調用該庫的API。

使用 Python 刪除 Excel 表格中的行

刪除特定行

如果你已知需要刪除的行號,可以使用Worksheet.DeleteRow(rowIndex: int, rowCount: int) 方法,通過指定起始行號和刪除行數,直接移除一行或多行數據。這種方式適用于結構固定或需要批量刪除指定位置行的 Excel 表格。

實現步驟:

  • 創建 Workbook 對象并加載 Excel 文件。
  • 獲取目標工作表。
  • 調用 DeleteRow() 方法刪除指定行。
  • 保存修改后的文件。

實現代碼:

from spire.xls.common import *
from spire.xls import *# 創建 Workbook 對象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")# 獲取第一個工作表
worksheet = workbook.Worksheets[0]# 從第 5 行開始刪除 2 行
worksheet.DeleteRow(5, 2)# 保存結果文件
workbook.SaveToFile("刪除特定行.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

刪除空白行

在處理 Excel 表格時,空白行會影響數據的完整性和可讀性。使用 Worksheet.Rows[index].IsBlank 屬性,可以輕松判斷某一行是否為空。若返回值為 True,則說明該行為空白行,可使用 DeleteRow() 方法將其刪除。

實現步驟:

  • 創建 Workbook 對象并加載 Excel 文件。
  • 獲取目標工作表。
  • 倒序遍歷所有行,使用 IsBlank 屬性判斷其是否為空。
  • 對空白行調用 DeleteRow() 方法進行刪除。
  • 保存修改后的 Excel 文件。

實現代碼:

from spire.xls import *
from spire.xls.common import *# 創建 Workbook 實例
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")
# 獲取第一個工作表
sheet = workbook.Worksheets[0]# 刪除空白行(倒序遍歷避免索引錯誤)
for i in range(sheet.Rows.Length - 1, -1, -1):if sheet.Rows[i].IsBlank:sheet.DeleteRow(i + 1)# 保存結果文件
workbook.SaveToFile("刪除空白行", ExcelVersion.Version2013)
workbook.Dispose()

刪除含指定數據的行

當需要刪除某些包含特定關鍵詞(如“已取消”、“無效”)的行時,可通過Worksheet.FindAll()方法查找關鍵詞所在的單元格并獲取其所在行,再使用DeleteRow()方法刪除這些行。

實現步驟:

  • 創建 Workbook 對象并加載 Excel 文件。
  • 獲取目標工作表。
  • 使用 FindAll() 方法查找包含指定內容的所有單元格。
  • 提取這些單元格所在的行索引,并去重。
  • 倒序遍歷行索引并使用DeleteRow()方法逐行刪除。
  • 保存處理后的文件。

實現代碼:

from spire.xls.common import *
from spire.xls import *# 創建 Workbook 對象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")# 獲取第一個工作表
worksheet = workbook.Worksheets[0]# 查找包含特定值的單元格
ranges = worksheet.FindAll("已取消", FindType.Text, ExcelFindOptions.MatchEntireCellContent)
# 存儲行索引
row_indexes = []# 遍歷查找到的單元格
for range in ranges:row_index = range.Rowif row_index not in row_indexes:row_indexes.append(row_index)# 倒序排列行索引
row_indexes.sort(reverse=True)# 逐行刪除
for row_index in row_indexes:worksheet.DeleteRow(row_index)# 保存結果文件
workbook.SaveToFile("刪除含特定數據的行.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

使用 Python 刪除 Excel 表格中的列

刪除特定列

若已明確某些列不再需要,可通過使用Worksheet.DeleteColumn(columnIndex: int, columnCount: int) 方法,刪除一列或多列。

實現步驟:

  • 創建 Workbook 對象并加載 Excel 文件。
  • 獲取目標工作表。
  • 使用 DeleteColumn() 方法,從工作表中刪除指定列。
  • 保存修改后的文件。

實現代碼:

from spire.xls.common import *
from spire.xls import *# 創建 Workbook 對象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")# 獲取第一個工作表
worksheet = workbook.Worksheets[0]# 從第 3 列開始刪除 2 列
worksheet.DeleteColumn(3, 2)# 保存結果文件
workbook.SaveToFile("刪除特定列.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

刪除空白列

空白列在 Excel 表格中同樣會造成數據干擾。使用 Worksheet.Columns[index].IsBlank 屬性可以檢測列是否為空,若返回值為 True,即可調用 DeleteColumn() 方法刪除該列。

實現步驟:

  • 創建 Workbook 對象并加載 Excel 文件。
  • 獲取目標工作表。
  • 倒序遍歷所有列,使用IsBlank屬性判斷其是否為空。
  • 若為空,則調用 DeleteColumn() 方法進行刪除。
  • 保存修改后的文件。

實現代碼:

from spire.xls import *
from spire.xls.common import *# 創建 Workbook 實例
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")
# 獲取第一個工作表
sheet = workbook.Worksheets[0]# 刪除空白列(倒序遍歷避免索引混亂)
for i in range(sheet.Columns.Length - 1, -1, -1):if sheet.Columns[i].IsBlank:sheet.DeleteColumn(i + 1)# 保存結果文件
workbook.SaveToFile("刪除空白列.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

刪除含指定數據的列

如果你需要刪除包含某個特定值的整列數據,比如含有“測試”的列,可以使用Worksheet.FindAll()方法查找數據,獲取其所在單元格,獲取該單元格所在列,再調用 DeleteColumn() 方法刪除對應列。

實現步驟:

  • 創建 Workbook 對象并加載 Excel 文件。
  • 獲取目標工作表。
  • 使用 FindAll() 方法查找包含指定文本的單元格;
  • 提取這些單元格所在的列索引,并去重;
  • 倒序遍歷列索引并使用DeleteColumn()方法逐列刪除;
  • 保存文件。

實現代碼:

from spire.xls.common import *
from spire.xls import *# 創建 Workbook 對象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")# 獲取第一個工作表
worksheet = workbook.Worksheets[0]# 查找包含指定值的單元格
ranges = worksheet.FindAll("測試", FindType.Text, ExcelFindOptions.MatchEntireCellContent)
# 存儲列索引
col_indexes = []# 遍歷查找到的單元格
for range in ranges:col_index = range.Columnif col_index not in col_indexes:col_indexes.append(col_index)# 倒序排列列索引
col_indexes.sort(reverse=True)# 逐列刪除
for col_index in col_indexes:worksheet.DeleteColumn(col_index)# 保存結果文件
workbook.SaveToFile("刪除含指定數據的列.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

使用 Python 刪除 Excel 中的單元格并自動移動剩余內容

刪除特定單元格

相較于整行整列的刪除,刪除單元格更常用于局部調整。例如在數據導入后,可能存在個別無效單元格需要清除,并將其他數據自動移位填充。

使用Worksheet.DeleteRange()方法,可以輕松移除不需要的單元格或單元格范圍,并指定剩余內容的移動方向,例如DeleteOption.MoveLeft,表示將剩余單元格內容向左移。

實現步驟:

  • 創建 Workbook 對象并加載 Excel 文件。
  • 獲取目標工作表。
  • 獲取目標區域的單元格范圍。
  • 調用 DeleteRange() 方法刪除該單元格范圍并設置剩余內容的移動方向;
  • 保存修改后的文件。

實現代碼:

from spire.xls.common import *
from spire.xls import *# 創建 Workbook 對象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")# 獲取第一個工作表
worksheet = workbook.Worksheets[0]# 通過指定起始行、起始列、結束行和結束列確定要刪除的單元格范圍(也可以使用范圍名稱如 "A2:B3")
range_to_delete = worksheet.Range[2, 1, 3, 2]# 刪除該區域,并將其右側單元格左移
worksheet.DeleteRange(range_to_delete, DeleteOption.MoveLeft)# 保存結果文件
workbook.SaveToFile("刪除特定單元格.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

刪除空白單元格

空白單元格可能導致數據排列不整齊或計算錯誤。可以使用 Worksheet.Cells[index].IsBlank 屬性逐個檢測單元格是否為空,然后使用 DeleteRange() 刪除它并設置剩余數據的移動方向。

實現步驟:

  • 創建 Workbook 對象并加載 Excel 文件。
  • 獲取目標工作表。
  • 遍歷工作表中的所有單元格。
  • 使用IsBlank屬性判斷其是否為空。
  • 若為空則使用 DeleteRange() 刪除它并設置其右側剩余數據的移動方向。
  • 保存結果文件。

示例代碼:

from spire.xls import *
from spire.xls.common import *# 創建 Workbook 實例
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")
# 獲取第一個工作表
sheet = workbook.Worksheets[0]# 刪除空白單元格(倒序遍歷避免索引問題)
for i in range(sheet.Cells.Length - 1, -1, -1):if sheet.Cells[i].IsBlank:sheet.DeleteRange(sheet.Cells[i], DeleteOption.MoveLeft)# 保存結果文件
workbook.SaveToFile("刪除空白單元格.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

刪除含指定數據的單元格

如果需要刪除表格中包含特定內容的單元格,可以使用Workbook.FindAll()方法查找這些單元格,然后使用 DeleteRange() 刪除這些單元格并設置剩余數據的移動方向。

實現步驟:

  • 創建 Workbook 對象并加載 Excel 文件。
  • 獲取目標工作表。
  • 使用 Workbook.FindAll() 方法查找包含指定內容的單元格。
  • 遍歷這些單元格,調用 DeleteRange() 刪除它們并移動剩余內容。
  • 保存修改后的文件。

實現代碼:

from spire.xls.common import *
from spire.xls import *# 創建 Workbook 對象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")# 獲取第一個工作表
worksheet = workbook.Worksheets[0]# 查找包含指定值的所有單元格
ranges = worksheet.FindAll("測試", FindType.Text, ExcelFindOptions.MatchEntireCellContent)# 逐個刪除這些單元格,并將右側單元格左移
for range in ranges:worksheet.DeleteRange(range, DeleteOption.MoveLeft)# 保存結果文件
workbook.SaveToFile("刪除含特定數據的單元格.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

以上就是使用 Python 和 Spire.XLS 刪除 Excel 文件中行、列和單元格的完整方法。如果你覺得這篇文章對你有所幫助,歡迎點贊、收藏或分享給有需要的朋友!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914387.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914387.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914387.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

箭頭函數(Arrow Functions)和普通函數(Regular Functions)

在 JavaScript 中,箭頭函數(Arrow Functions)和普通函數(Regular Functions)有以下主要區別:1. 語法箭頭函數:使用 > 語法,更簡潔,可省略 function 和 return&#xf…

Spring Boot 配置注解處理器 - spring-boot-configuration-processor

前言 在 Spring Boot 開發中,配置屬性的管理是構建企業級應用的核心環節。Spring Boot 通過 ConfigurationProperties 注解提供了一種類型安全的方式,將配置文件中的屬性綁定到 Java 對象中。然而,開發者在使用過程中常會遇到配置屬性無自動補…

java: DDD using oracle 21c

項目結構:domain:/*** encoding: utf-8* 版權所有 2025 ©涂聚文有限公司 * 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎* 描述:* Author : geovindu,Geovin Du 涂聚文.* IDE : IntelliJ IDEA 2024…

兩張圖片對比clip功能

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>圖片拖動Clip對比功能</title><style&g…

7.11 dp 圖

lcr148.棧按放入順序推棧&#xff0c;能彈出的就及時彈出&#xff0c;最后棧空則符合要求。判斷 takeOut 序列是否符合棧的操作邏輯&#xff0c;因為題目中“特殊的數據結構”其實就是棧&#xff08;先進后出&#xff09;。思路如下&#xff1a;1. 用一個棧來模擬圖書放入的過程…

react16-react19都更新哪些內容?

React 16 到 React 19 是 React 發展非常關鍵的階段&#xff0c;每個版本都帶來了深遠影響。以下是 React 16 → 19 的重要更新列表&#xff0c;按版本詳細說明每一代的核心特性、重要變化、對開發者的意義&#xff0c;并附簡評&#xff1a;? React 16&#xff08;2017 年&…

【AI大模型】RAG系統組件:向量數據庫(ChromaDB)

RAG 系統中的關鍵組件&#xff1a;向量數據庫&#xff08;Vector Database&#xff09;&#xff0c;并以 ChromaDB 為例進行說明。什么是向量數據庫&#xff1f;核心概念&#xff1a; 向量數據庫是一種專門設計用于高效存儲、索引和檢索高維向量的數據庫。向量是什么&#xff1…

006_測試評估與安全實踐

測試評估與安全實踐 目錄 建立成功標準評估方法測試策略安全最佳實踐隱私保護性能監控 建立成功標準 定義原則 1. 具體明確 清晰定義精確目標避免模糊表述如"良好性能"制定可操作的標準 不好的標準&#xff1a; 模型應該表現良好好的標準&#xff1a; 情感分…

時序預測 | Pytorch實現CNN-KAN電力負荷時間序列預測模型

預測效果 代碼功能 該代碼實現了一個結合卷積神經網絡&#xff08;CNN&#xff09;和Kolmogorov–Arnold網絡&#xff08;KAN&#xff09;的混合模型&#xff08;CNN-KAN&#xff09;&#xff0c;用于時間序列預測任務。核心功能包括&#xff1a; 數據加載與預處理&#xff1…

UI前端與數字孿生結合實踐探索:智慧物流的倉儲優化與管理系統

hello寶子們...我們是艾斯視覺擅長ui設計和前端數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言&#xff1a;倉儲管理的 “數字孿生革命”傳統物流倉儲正面臨 “效率瓶頸、可視化差、響應滯…

【Android】在平板上實現Rs485的數據通訊

前言 在工業控制領域&#xff0c;Android 設備通過 RS485 接口與 PLC&#xff08;可編程邏輯控制器&#xff09;通信是一種常見的技術方案。最近在實現一個項目需要和plc使用485進行通訊&#xff0c;記錄下實現的方式。 我這邊使用的從平的Android平板&#xff0c;從平里面已經…

MySQL技術筆記-備份與恢復完全指南

目錄 前言 一、備份概述 &#xff08;一&#xff09;備份方式 &#xff08;二&#xff09;備份策略 二、物理備份及恢復 &#xff08;一&#xff09;備份操作 &#xff08;二&#xff09;恢復操作 三、邏輯備份及恢復 &#xff08;一&#xff09;邏輯備份 &#xff0…

SpringBoot或OpenFeign中 Jackson 配置參數名蛇形、小駝峰、大駝峰、自定義命名

SpringBoot或OpenFeign中 Jackson 配置參數名蛇形、小駝峰、大駝峰、自定義命名 前言 在調用外部接口時&#xff0c;對方給出的接口文檔中&#xff0c;入參參數名一會大寫加下劃線&#xff0c;一會又是駝峰命名。 示例如下&#xff1a; {"MOF_DIV_CODE": "xx…

uni-app 途徑站點組件開發與實現分享

在移動應用開發中&#xff0c;涉及到出行、物流等場景時&#xff0c;途徑站點的展示是一個常見的需求。本文將為大家分享一個基于 uni-app 開發的途徑站點組件&#xff0c;該組件能夠清晰展示路線中的各個站點信息&#xff0c;包括站點名稱、到達時間、是否已到達等狀態&#x…

kotlin中集合的用法

從一個實際應用看起以下kotlin中代碼語法正確嗎 var testBeanAIP0200()var testList:List<AIP0200> ArrayList()testList.add(testBean)這段Kotlin代碼存在語法錯誤&#xff0c;主要問題在于&#xff1a;List<AIP0200> 是Kotlin中的不可變集合接口&#xff0c;不能…

深入理解 Java Map 與 Set

文章目錄前言1. 搜索樹1.1 什么是搜索樹1.2 查找1.3 插入1.4 刪除情況一&#xff1a;cur 沒有子節點&#xff08;即為葉子節點&#xff09;情況二&#xff1a;cur 只有一個子節點&#xff08;只有左子樹或右子樹&#xff09;情況三&#xff1a;cur 有兩個子節點&#xff08;左右…

excel如何只保留前幾行

方法一&#xff1a;手動刪除多余行 選中你想保留的最后一行的下一行&#xff08;比如你只保留前10行&#xff0c;那選第11行&#xff09;。按住 Shift Ctrl ↓&#xff08;Windows&#xff09;或 Shift Command ↓&#xff08;Mac&#xff09;&#xff0c;選中從第11行到最…

實時連接,精準監控:風丘科技數據遠程顯示方案提升試驗車隊管理效率

風丘科技推出的數據遠程實時顯示方案更好地滿足了客戶對于試驗車隊遠程實時監控的需求&#xff0c;并真正實現了試驗車隊的遠程管理。隨著新的數據記錄儀軟件IPEmotion RT和相應的跨平臺顯示解決方案的引入&#xff0c;讓我們的客戶端不僅可在線訪問記錄器系統狀態&#xff0c;…

灰盒級SOA測試工具Parasoft SOAtest重新定義端到端測試

還在為脆弱的測試環境、強外部依賴和低效的測試復用拖慢交付而頭疼&#xff1f;尤其在銀行、醫療、制造等關鍵領域&#xff0c;傳統的端到端測試常因環境不穩、接口難模擬、用例難共享而舉步維艱。 灰盒級SOA測試工具Parasoft SOAtest以可視化編排簡化復雜測試流程&#xff0c…

OKHttp 核心知識點詳解

OKHttp 核心知識點詳解 一、基本概念與架構 1. OKHttp 簡介 類型&#xff1a;高效的HTTP客戶端特點&#xff1a; 支持HTTP/2和SPDY&#xff08;多路復用&#xff09;連接池減少請求延遲透明的GZIP壓縮響應緩存自動恢復網絡故障2. 核心組件組件功能OkHttpClient客戶端入口&#…