使用Python刪除Excel中的指定行列
在日常數(shù)據(jù)處理中,我們經(jīng)常需要對(duì) Excel 文件進(jìn)行編輯,其中刪除不必要的行和列是常見操作。本文將介紹如何使用免費(fèi)庫(kù) Free Spire.XLS for Python 來高效刪除 Excel 中的行和列,幫助你簡(jiǎn)化數(shù)據(jù)處理流程。
一、Free Spire.XLS:輕量級(jí) Excel 操作庫(kù)
在 Python 生態(tài)中,處理 Excel 的主流庫(kù)包括 pandas 和 openpyxl,與它們相比 Free Spire.XLS 具有以下優(yōu)勢(shì):
- 無需依賴 Office,獨(dú)立運(yùn)行,跨平臺(tái)兼容
- 支持多格式,
.xls、.xlsx、.csv全覆蓋 - 保留原始樣式,刪除操作后不影響表格樣式
二、具體操作:刪除行與列的完整流程
1. 安裝免費(fèi)庫(kù)
通過 pip 安裝(注意:有篇幅限制):
pip install Spire.Xls.Free
2. 刪除指定行
from spire.xls import *
from spire.xls.common import *
# 加載 Excel
workbook = Workbook()
workbook.LoadFromFile("input.xlsx")
# 定位到第一個(gè)工作表
worksheet = workbook.Worksheets[0]
# 刪除第2行(索引從1開始)
worksheet.DeleteRow(2)
# 保存結(jié)果
workbook.SaveToFile("output.xlsx", FileFormat.XLSX)
關(guān)鍵點(diǎn):
- 刪除后,后續(xù)行會(huì)自動(dòng)上移,無需額外調(diào)整
- 支持刪除多行:
DeleteRows(start_index, count)
3. 刪除指定列
# 繼續(xù)使用上文的 workbook 對(duì)象
worksheet.DeleteColumn(1) # 刪除第1列
workbook.SaveToFile("output.xlsx")
注意事項(xiàng):
- 刪除列后,表格寬度自動(dòng)縮減
- 若需刪除多列,優(yōu)先刪除靠右的列以避免索引錯(cuò)位
三、方法補(bǔ)充
使用 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()本文介紹了使用 Free Spire.XLS for Python 庫(kù)刪除 Excel 中行和列的具體方法。該庫(kù)提供了對(duì)應(yīng)的 API,可實(shí)現(xiàn)單個(gè)行 / 列及多個(gè)連續(xù)行 / 列的刪除操作,操作過程需遵循其索引規(guī)則及資源管理要求。
到此這篇關(guān)于使用Python刪除Excel中的指定行列的文章就介紹到這了,更多相關(guān)Python刪除Excel指定行列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python圖像填充與裁剪/resize的實(shí)現(xiàn)代碼
這篇文章主要介紹了python圖像填充與裁剪/resize,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
Python流式游標(biāo)與緩存式(默認(rèn))游標(biāo)的那些坑及解決
這篇文章主要介紹了Python流式游標(biāo)與緩存式(默認(rèn))游標(biāo)的那些坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Python?Playwright進(jìn)行常見的頁面交互操作
在使用?Playwright?進(jìn)行?Web?自動(dòng)化時(shí),頁面交互是核心操作之一,本文將詳細(xì)介紹如何使用?Playwright?進(jìn)行常見的頁面交互操作,希望對(duì)大家有所幫助2024-10-10
Python第三方庫(kù)之OpenCV庫(kù)的實(shí)用指南
OpenCV(Open Source Computer Vision Library)作為一個(gè)強(qiáng)大的計(jì)算機(jī)視覺庫(kù),提供了豐富的圖像處理和計(jì)算機(jī)視覺功能,本文將帶領(lǐng)讀者使用Python編程語言,通過簡(jiǎn)單的代碼示例,初步掌握OpenCV的圖像處理技術(shù),需要的朋友可以參考下2024-09-09
python數(shù)據(jù)結(jié)構(gòu)之列表和元組的詳解
這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)之列表和元組的詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家徹底理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09

