使用Python刪除Excel中的行列和單元格示例詳解
在處理Excel數(shù)據(jù)時(shí),刪除不需要的行、列或單元格是一項(xiàng)常見且必要的操作。然而,當(dāng)面對(duì)大量 Excel 文件或結(jié)構(gòu)復(fù)雜的數(shù)據(jù)表格時(shí),手動(dòng)處理這些任務(wù)不僅效率低下,還容易因操作失誤造成數(shù)據(jù)錯(cuò)誤。
使用 Python腳本,可以實(shí)現(xiàn)對(duì) Excel 表格的高效自動(dòng)化處理。無論是刪除指定的行或列、批量清除空白行和空白列,還是根據(jù)關(guān)鍵字篩選并刪除包含特定數(shù)據(jù)的單元格,這些操作都可以通過腳本一次性完成,大幅提升工作效率和準(zhǔn)確性。
本文將詳細(xì)介紹如何使用 Python 刪除 Excel 中的行、列和單元格,內(nèi)容涵蓋以下幾個(gè)方面:
- 開發(fā)環(huán)境準(zhǔn)備
- 使用 Python 刪除 Excel 表格中的行
- 刪除特定行
- 刪除空白行
- 刪除含指定數(shù)據(jù)的行
- 使用 Python 刪除 Excel 表格中的列
- 刪除特定列
- 刪除空白列
- 刪除含指定數(shù)據(jù)的列
- 使用 Python 刪除 Excel 中的單元格并自動(dòng)移動(dòng)剩余內(nèi)容
- 刪除特定單元格
- 刪除空白單元格
- 刪除含指定數(shù)據(jù)的單元格
開發(fā)環(huán)境準(zhǔn)備
在操作 Excel 文件之前,首先需要準(zhǔn)備好 Python 開發(fā)環(huán)境,并引入相應(yīng)的庫。本文將使用第三方庫 Spire.XLS for Python,它支持讀取、修改、寫入以及轉(zhuǎn)換 Excel 文件,且不依賴微軟Office或其他第三方軟件。
安裝 Spire.XLS
Spire.XLS 提供了兩個(gè)版本,可以根據(jù)需求選擇合適的版本:
社區(qū)版:免費(fèi)使用,但每個(gè) .xls 文件限制為 200 行和 5 個(gè)工作表(.xlsx 文件沒有此限制)。安裝命令:
pip install spire.xls.free
商業(yè)版:功能完備,但會(huì)添加水印??梢栽?[這里] 申請(qǐng)免費(fèi)的測(cè)試許可證。
安裝命令:
pip install spire.xls
安裝完成后,即可在Python應(yīng)用程序中調(diào)用該庫的API。
使用 Python 刪除 Excel 表格中的行
刪除特定行
如果你已知需要?jiǎng)h除的行號(hào),可以使用Worksheet.DeleteRow(rowIndex: int, rowCount: int) 方法,通過指定起始行號(hào)和刪除行數(shù),直接移除一行或多行數(shù)據(jù)。這種方式適用于結(jié)構(gòu)固定或需要批量刪除指定位置行的 Excel 表格。
實(shí)現(xiàn)步驟:
- 創(chuàng)建 Workbook 對(duì)象并加載 Excel 文件。
- 獲取目標(biāo)工作表。
- 調(diào)用 DeleteRow() 方法刪除指定行。
- 保存修改后的文件。
實(shí)現(xiàn)代碼:
from spire.xls.common import *
from spire.xls import *
# 創(chuàng)建 Workbook 對(duì)象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
worksheet = workbook.Worksheets[0]
# 從第 5 行開始刪除 2 行
worksheet.DeleteRow(5, 2)
# 保存結(jié)果文件
workbook.SaveToFile("刪除特定行.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
刪除空白行
在處理 Excel 表格時(shí),空白行會(huì)影響數(shù)據(jù)的完整性和可讀性。使用 Worksheet.Rows[index].IsBlank 屬性,可以輕松判斷某一行是否為空。若返回值為 True,則說明該行為空白行,可使用 DeleteRow() 方法將其刪除。
實(shí)現(xiàn)步驟:
- 創(chuàng)建 Workbook 對(duì)象并加載 Excel 文件。
- 獲取目標(biāo)工作表。
- 倒序遍歷所有行,使用 IsBlank 屬性判斷其是否為空。
- 對(duì)空白行調(diào)用 DeleteRow() 方法進(jìn)行刪除。
- 保存修改后的 Excel 文件。
實(shí)現(xiàn)代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建 Workbook 實(shí)例
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 刪除空白行(倒序遍歷避免索引錯(cuò)誤)
for i in range(sheet.Rows.Length - 1, -1, -1):
if sheet.Rows[i].IsBlank:
sheet.DeleteRow(i + 1)
# 保存結(jié)果文件
workbook.SaveToFile("刪除空白行", ExcelVersion.Version2013)
workbook.Dispose()
刪除含指定數(shù)據(jù)的行
當(dāng)需要?jiǎng)h除某些包含特定關(guān)鍵詞(如“已取消”、“無效”)的行時(shí),可通過Worksheet.FindAll()方法查找關(guān)鍵詞所在的單元格并獲取其所在行,再使用DeleteRow()方法刪除這些行。
實(shí)現(xiàn)步驟:
- 創(chuàng)建 Workbook 對(duì)象并加載 Excel 文件。
- 獲取目標(biāo)工作表。
- 使用 FindAll() 方法查找包含指定內(nèi)容的所有單元格。
- 提取這些單元格所在的行索引,并去重。
- 倒序遍歷行索引并使用DeleteRow()方法逐行刪除。
- 保存處理后的文件。
實(shí)現(xiàn)代碼:
from spire.xls.common import *
from spire.xls import *
# 創(chuàng)建 Workbook 對(duì)象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
worksheet = workbook.Worksheets[0]
# 查找包含特定值的單元格
ranges = worksheet.FindAll("已取消", FindType.Text, ExcelFindOptions.MatchEntireCellContent)
# 存儲(chǔ)行索引
row_indexes = []
# 遍歷查找到的單元格
for range in ranges:
row_index = range.Row
if 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)
# 保存結(jié)果文件
workbook.SaveToFile("刪除含特定數(shù)據(jù)的行.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
使用 Python 刪除 Excel 表格中的列
刪除特定列
若已明確某些列不再需要,可通過使用Worksheet.DeleteColumn(columnIndex: int, columnCount: int) 方法,刪除一列或多列。
實(shí)現(xiàn)步驟:
- 創(chuàng)建 Workbook 對(duì)象并加載 Excel 文件。
- 獲取目標(biāo)工作表。
- 使用 DeleteColumn() 方法,從工作表中刪除指定列。
- 保存修改后的文件。
實(shí)現(xiàn)代碼:
from spire.xls.common import *
from spire.xls import *
# 創(chuàng)建 Workbook 對(duì)象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
worksheet = workbook.Worksheets[0]
# 從第 3 列開始刪除 2 列
worksheet.DeleteColumn(3, 2)
# 保存結(jié)果文件
workbook.SaveToFile("刪除特定列.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
刪除空白列
空白列在 Excel 表格中同樣會(huì)造成數(shù)據(jù)干擾。使用 Worksheet.Columns[index].IsBlank 屬性可以檢測(cè)列是否為空,若返回值為 True,即可調(diào)用 DeleteColumn() 方法刪除該列。
實(shí)現(xiàn)步驟:
- 創(chuàng)建 Workbook 對(duì)象并加載 Excel 文件。
- 獲取目標(biāo)工作表。
- 倒序遍歷所有列,使用IsBlank屬性判斷其是否為空。
- 若為空,則調(diào)用 DeleteColumn() 方法進(jìn)行刪除。
- 保存修改后的文件。
實(shí)現(xiàn)代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建 Workbook 實(shí)例
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 刪除空白列(倒序遍歷避免索引混亂)
for i in range(sheet.Columns.Length - 1, -1, -1):
if sheet.Columns[i].IsBlank:
sheet.DeleteColumn(i + 1)
# 保存結(jié)果文件
workbook.SaveToFile("刪除空白列.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
刪除含指定數(shù)據(jù)的列
如果你需要?jiǎng)h除包含某個(gè)特定值的整列數(shù)據(jù),比如含有“測(cè)試”的列,可以使用Worksheet.FindAll()方法查找數(shù)據(jù),獲取其所在單元格,獲取該單元格所在列,再調(diào)用 DeleteColumn() 方法刪除對(duì)應(yīng)列。
實(shí)現(xiàn)步驟:
- 創(chuàng)建 Workbook 對(duì)象并加載 Excel 文件。
- 獲取目標(biāo)工作表。
- 使用 FindAll() 方法查找包含指定文本的單元格;
- 提取這些單元格所在的列索引,并去重;
- 倒序遍歷列索引并使用DeleteColumn()方法逐列刪除;
- 保存文件。
實(shí)現(xiàn)代碼:
from spire.xls.common import *
from spire.xls import *
# 創(chuàng)建 Workbook 對(duì)象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
worksheet = workbook.Worksheets[0]
# 查找包含指定值的單元格
ranges = worksheet.FindAll("測(cè)試", FindType.Text, ExcelFindOptions.MatchEntireCellContent)
# 存儲(chǔ)列索引
col_indexes = []
# 遍歷查找到的單元格
for range in ranges:
col_index = range.Column
if 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)
# 保存結(jié)果文件
workbook.SaveToFile("刪除含指定數(shù)據(jù)的列.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
使用 Python 刪除 Excel 中的單元格并自動(dòng)移動(dòng)剩余內(nèi)容
刪除特定單元格
相較于整行整列的刪除,刪除單元格更常用于局部調(diào)整。例如在數(shù)據(jù)導(dǎo)入后,可能存在個(gè)別無效單元格需要清除,并將其他數(shù)據(jù)自動(dòng)移位填充。
使用Worksheet.DeleteRange()方法,可以輕松移除不需要的單元格或單元格范圍,并指定剩余內(nèi)容的移動(dòng)方向,例如DeleteOption.MoveLeft,表示將剩余單元格內(nèi)容向左移。
實(shí)現(xiàn)步驟:
- 創(chuàng)建 Workbook 對(duì)象并加載 Excel 文件。
- 獲取目標(biāo)工作表。
- 獲取目標(biāo)區(qū)域的單元格范圍。
- 調(diào)用 DeleteRange() 方法刪除該單元格范圍并設(shè)置剩余內(nèi)容的移動(dòng)方向;
- 保存修改后的文件。
實(shí)現(xiàn)代碼:
from spire.xls.common import *
from spire.xls import *
# 創(chuàng)建 Workbook 對(duì)象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
worksheet = workbook.Worksheets[0]
# 通過指定起始行、起始列、結(jié)束行和結(jié)束列確定要?jiǎng)h除的單元格范圍(也可以使用范圍名稱如 "A2:B3")
range_to_delete = worksheet.Range[2, 1, 3, 2]
# 刪除該區(qū)域,并將其右側(cè)單元格左移
worksheet.DeleteRange(range_to_delete, DeleteOption.MoveLeft)
# 保存結(jié)果文件
workbook.SaveToFile("刪除特定單元格.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
刪除空白單元格
空白單元格可能導(dǎo)致數(shù)據(jù)排列不整齊或計(jì)算錯(cuò)誤??梢允褂?Worksheet.Cells[index].IsBlank 屬性逐個(gè)檢測(cè)單元格是否為空,然后使用 DeleteRange() 刪除它并設(shè)置剩余數(shù)據(jù)的移動(dòng)方向。
實(shí)現(xiàn)步驟:
- 創(chuàng)建 Workbook 對(duì)象并加載 Excel 文件。
- 獲取目標(biāo)工作表。
- 遍歷工作表中的所有單元格。
- 使用IsBlank屬性判斷其是否為空。
- 若為空則使用 DeleteRange() 刪除它并設(shè)置其右側(cè)剩余數(shù)據(jù)的移動(dòng)方向。
- 保存結(jié)果文件。
示例代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建 Workbook 實(shí)例
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
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)
# 保存結(jié)果文件
workbook.SaveToFile("刪除空白單元格.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
刪除含指定數(shù)據(jù)的單元格
如果需要?jiǎng)h除表格中包含特定內(nèi)容的單元格,可以使用Workbook.FindAll()方法查找這些單元格,然后使用 DeleteRange() 刪除這些單元格并設(shè)置剩余數(shù)據(jù)的移動(dòng)方向。
實(shí)現(xiàn)步驟:
- 創(chuàng)建 Workbook 對(duì)象并加載 Excel 文件。
- 獲取目標(biāo)工作表。
- 使用 Workbook.FindAll() 方法查找包含指定內(nèi)容的單元格。
- 遍歷這些單元格,調(diào)用 DeleteRange() 刪除它們并移動(dòng)剩余內(nèi)容。
- 保存修改后的文件。
實(shí)現(xiàn)代碼:
from spire.xls.common import *
from spire.xls import *
# 創(chuàng)建 Workbook 對(duì)象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
worksheet = workbook.Worksheets[0]
# 查找包含指定值的所有單元格
ranges = worksheet.FindAll("測(cè)試", FindType.Text, ExcelFindOptions.MatchEntireCellContent)
# 逐個(gè)刪除這些單元格,并將右側(cè)單元格左移
for range in ranges:
worksheet.DeleteRange(range, DeleteOption.MoveLeft)
# 保存結(jié)果文件
workbook.SaveToFile("刪除含特定數(shù)據(jù)的單元格.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
到此這篇關(guān)于使用Python刪除Excel中的行列和單元格示例詳解的文章就介紹到這了,更多相關(guān)Python刪除Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用tkinter實(shí)現(xiàn)透明窗體上繪制隨機(jī)出現(xiàn)的小球(實(shí)例代碼)
今天教大家怎么實(shí)現(xiàn)Tkinter透明窗體,在上篇文章給大家介紹過透明窗體上繪制小球,今天接著通過實(shí)例代碼給大家分享python使用tkinter實(shí)現(xiàn)透明窗體上繪制隨機(jī)出現(xiàn)的小球的實(shí)例代碼,感興趣的朋友跟隨小編一起看看吧2021-05-05
在Pycharm中將pyinstaller加入External Tools的方法
今天小編就為大家分享一篇在Pycharm中將pyinstaller加入External Tools的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
在pytorch中如何查看模型model參數(shù)parameters
這篇文章主要介紹了在pytorch中如何查看模型model參數(shù)parameters,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
基于Python+Matplotlib實(shí)現(xiàn)直方圖的繪制
Matplotlib是Python的繪圖庫,它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式。本文將為大家介紹如何用matplotlib繪制直方圖,感興趣的朋友可以學(xué)習(xí)一下2022-04-04
Python代碼解決RenderView窗口not found問題
這篇文章主要介紹了Python代碼解決RenderView窗口not found問題,需要的朋友可以參考下2016-08-08
將python項(xiàng)目導(dǎo)出為docker鏡像實(shí)現(xiàn)過程
本文介紹了使用Docker將修改后的Python代碼打包為.tar.gz格式,并導(dǎo)入的方法,首先創(chuàng)建項(xiàng)目和setup.py文件,然后打包項(xiàng)目并創(chuàng)建Dockerfile,接著構(gòu)建并運(yùn)行Docker鏡像,在容器中導(dǎo)入修改后的模塊,最后,說明了如何保存修改并繼續(xù)開發(fā)2026-04-04
關(guān)于Numpy中argsort()函數(shù)的用法解讀
這篇文章主要介紹了關(guān)于Numpy中argsort()函數(shù)的用法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
Python+Pygame實(shí)戰(zhàn)之24點(diǎn)游戲的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何利用Python和Pygame實(shí)現(xiàn)24點(diǎn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04

