亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Python刪除Excel中的行列和單元格示例詳解

 更新時間:2025年07月11日 15:31:45   作者:nuclear2011  
在處理Excel數(shù)據(jù)時,刪除不需要的行、列或單元格是一項常見且必要的操作,本文將使用 Python腳本實現(xiàn)對 Excel 表格的高效自動化處理,感興趣的可以了解下

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

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

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

  • 開發(fā)環(huán)境準(zhǔn)備
  • 使用 Python 刪除 Excel 表格中的行
    • 刪除特定行
    • 刪除空白行
    • 刪除含指定數(shù)據(jù)的行
  • 使用 Python 刪除 Excel 表格中的列
    • 刪除特定列
    • 刪除空白列
    • 刪除含指定數(shù)據(jù)的列
  • 使用 Python 刪除 Excel 中的單元格并自動移動剩余內(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 提供了兩個版本,可以根據(jù)需求選擇合適的版本:

社區(qū)版:免費(fèi)使用,但每個 .xls 文件限制為 200 行和 5 個工作表(.xlsx 文件沒有此限制)。安裝命令:

pip install spire.xls.free

商業(yè)版:功能完備,但會添加水印。可以在 [這里] 申請免費(fèi)的測試許可證。

安裝命令:

pip install spire.xls

安裝完成后,即可在Python應(yīng)用程序中調(diào)用該庫的API。

使用 Python 刪除 Excel 表格中的行

刪除特定行

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

實現(xiàn)步驟:

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

實現(xiàn)代碼:

from spire.xls.common import *
from spire.xls import *

# 創(chuàng)建 Workbook 對象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")

# 獲取第一個工作表
worksheet = workbook.Worksheets[0]

# 從第 5 行開始刪除 2 行
worksheet.DeleteRow(5, 2)

# 保存結(jié)果文件
workbook.SaveToFile("刪除特定行.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

刪除空白行

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

實現(xiàn)步驟:

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

實現(xiàn)代碼:

from spire.xls import *
from spire.xls.common import *

# 創(chuàng)建 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)

# 保存結(jié)果文件
workbook.SaveToFile("刪除空白行", ExcelVersion.Version2013)
workbook.Dispose()

刪除含指定數(shù)據(jù)的行

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

實現(xiàn)步驟:

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

實現(xiàn)代碼:

from spire.xls.common import *
from spire.xls import *

# 創(chuàng)建 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.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) 方法,刪除一列或多列。

實現(xiàn)步驟:

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

實現(xiàn)代碼:

from spire.xls.common import *
from spire.xls import *

# 創(chuàng)建 Workbook 對象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")

# 獲取第一個工作表
worksheet = workbook.Worksheets[0]

# 從第 3 列開始刪除 2 列
worksheet.DeleteColumn(3, 2)

# 保存結(jié)果文件
workbook.SaveToFile("刪除特定列.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

刪除空白列

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

實現(xiàn)步驟:

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

實現(xiàn)代碼:

from spire.xls import *
from spire.xls.common import *

# 創(chuàng)建 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)

# 保存結(jié)果文件
workbook.SaveToFile("刪除空白列.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

刪除含指定數(shù)據(jù)的列

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

實現(xiàn)步驟:

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

實現(xiàn)代碼:

from spire.xls.common import *
from spire.xls import *

# 創(chuàng)建 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.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 中的單元格并自動移動剩余內(nèi)容

刪除特定單元格

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

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

實現(xiàn)步驟:

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

實現(xiàn)代碼:

from spire.xls.common import *
from spire.xls import *

# 創(chuàng)建 Workbook 對象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")

# 獲取第一個工作表
worksheet = workbook.Worksheets[0]

# 通過指定起始行、起始列、結(jié)束行和結(jié)束列確定要刪除的單元格范圍(也可以使用范圍名稱如 "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ù)排列不整齊或計算錯誤。可以使用 Worksheet.Cells[index].IsBlank 屬性逐個檢測單元格是否為空,然后使用 DeleteRange() 刪除它并設(shè)置剩余數(shù)據(jù)的移動方向。

實現(xiàn)步驟:

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

示例代碼:

from spire.xls import *
from spire.xls.common import *

# 創(chuàng)建 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)

# 保存結(jié)果文件
workbook.SaveToFile("刪除空白單元格.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

刪除含指定數(shù)據(jù)的單元格

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

實現(xiàn)步驟:

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

實現(xiàn)代碼:

from spire.xls.common import *
from spire.xls import *

# 創(chuàng)建 Workbook 對象
workbook = Workbook()
# 加載 Excel 文件
workbook.LoadFromFile("測試.xlsx")

# 獲取第一個工作表
worksheet = workbook.Worksheets[0]

# 查找包含指定值的所有單元格
ranges = worksheet.FindAll("測試", FindType.Text, ExcelFindOptions.MatchEntireCellContent)

# 逐個刪除這些單元格,并將右側(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論