簡體   English   中英

使用 openpyxl 有條件地刪除一行

[英]delete a row conditionally using openpyxl

我有一個 xlsx 文件,其中包含特定數量的工作表。

我想要一個 python 腳本來搜索指定的工作表以查找單元格中的值,如果找到則刪除整行。

我目前擁有的腳本用於搜索與值對應的行並更改該值。 我嘗試修改腳本但沒有成功。

這是我的代碼:

import openpyxl
for f in files:
    if f[-4:] == "xlsx":
        book = openpyxl.load_workbook(f)
        sheet = book.active
        for idx, row in enumerate(sheet.iter_rows()):
            if row[0].value == "some_value":
                row[1].value = 1
        book.save(f)

任何幫助表示贊賞。

在 Python3、PyCharm 和 Windows 10 上運行。

以下是根據值條件刪除行的解決方案:

import openpyxl

f = "testFile.xlsx"
if f[-4:] == "xlsx":
    book = openpyxl.load_workbook(f)
    sheet = book.active
    [sheet.delete_rows(idx + 1) for idx, row in enumerate(sheet.values) if row[0] == "some value"]
    book.save(f)

或者

import openpyxl
f = "testFile.xlsx"
if f[-4:] == "xlsx":
    book = openpyxl.load_workbook(f)
    sheet = book.active
    for idx,row in enumerate(sheet.values):
        if row[0] == "some value":
            sheet.delete_rows(idx+1)
    book.save(f)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM