欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

在處理Excel數(shù)據(jù)時(shí),刪除不需要的行、列或單元格是一項(xiàng)常見(jiàn)且必要的操作。然而,當(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)化處理。無(wú)論是刪除指定的行或列、批量清除空白行和空白列,還是根據(jù)關(guān)鍵字篩選并刪除包含特定數(shù)據(jù)的單元格,這些操作都可以通過(guò)腳本一次性完成,大幅提升工作效率和準(zhǔn)確性。

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

  • 開(kāi)發(fā)環(huán)境準(zhǔn)備
  • 使用 Python 刪除 Excel 表格中的行
    • 刪除特定行
    • 刪除空白行
    • 刪除含指定數(shù)據(jù)的行
  • 使用 Python 刪除 Excel 表格中的列
    • 刪除特定列
    • 刪除空白列
    • 刪除含指定數(shù)據(jù)的列
  • 使用 Python 刪除 Excel 中的單元格并自動(dòng)移動(dòng)剩余內(nèi)容
    • 刪除特定單元格
    • 刪除空白單元格
    • 刪除含指定數(shù)據(jù)的單元格

開(kāi)發(fā)環(huán)境準(zhǔn)備

在操作 Excel 文件之前,首先需要準(zhǔn)備好 Python 開(kāi)發(fā)環(huán)境,并引入相應(yīng)的庫(kù)。本文將使用第三方庫(kù) Spire.XLS for Python,它支持讀取、修改、寫入以及轉(zhuǎn)換 Excel 文件,且不依賴微軟Office或其他第三方軟件。

安裝 Spire.XLS

Spire.XLS 提供了兩個(gè)版本,可以根據(jù)需求選擇合適的版本:

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

pip install spire.xls.free

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

安裝命令:

pip install spire.xls

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

使用 Python 刪除 Excel 表格中的行

刪除特定行

如果你已知需要?jiǎng)h除的行號(hào),可以使用Worksheet.DeleteRow(rowIndex: int, rowCount: int) 方法,通過(guò)指定起始行號(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 行開(kāi)始刪除 2 行
worksheet.DeleteRow(5, 2)

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

刪除空白行

在處理 Excel 表格時(shí),空白行會(huì)影響數(shù)據(jù)的完整性和可讀性。使用 Worksheet.Rows[index].IsBlank 屬性,可以輕松判斷某一行是否為空。若返回值為 True,則說(shuō)明該行為空白行,可使用 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)鍵詞(如“已取消”、“無(wú)效”)的行時(shí),可通過(guò)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 表格中的列

刪除特定列

若已明確某些列不再需要,可通過(guò)使用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 列開(kāi)始刪除 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è)別無(wú)效單元格需要清除,并將其他數(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]

# 通過(guò)指定起始行、起始列、結(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]

# 刪除空白單元格(倒序遍歷避免索引問(wèn)題)
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)文章

最新評(píng)論