使用 openpyxl 有条件地删除一行
delete a row conditionally using openpyxl
我有一个 xlsx 文件,其中包含特定数量的 sheets。
我想要一个 python 脚本在指定的 sheet 中搜索单元格中的值,如果找到则删除整行。
我目前构建的脚本用于搜索与某个值对应的行并更改该值。
我试过修改脚本,但没有成功。
这是我的代码:
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)
我有一个 xlsx 文件,其中包含特定数量的 sheets。
我想要一个 python 脚本在指定的 sheet 中搜索单元格中的值,如果找到则删除整行。
我目前构建的脚本用于搜索与某个值对应的行并更改该值。 我试过修改脚本,但没有成功。
这是我的代码:
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)