You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python openpyxl删除含当前月份单元格的Excel行 代码如何修正

Excel按当前月份删除整行代码修正方案

核心错误原因

  • 类型匹配错误:你将d.value.date()返回的完整日期对象,直接和整数类型的当前月份做比较,比较结果永远为False,所以首次运行无删除效果;反过来判断不等时结果永远为True,就会清空所有行。
  • 变量引用错误:你定义的存储当前月份的变量名为current_month,但判断条件中错误写为current.month,未定义的current变量直接导致判断逻辑完全失效。
  • 冗余操作:日期类型单元格的value本身就是datetime对象,不需要额外调用.date()方法,直接取.month属性即可获得对应月份的整数值。

修正后可运行代码

from openpyxl import load_workbook
from datetime import date

wb = load_workbook('file1.xlsx')
ws = wb['Sheet1']
max_row = ws.max_row
max_col = ws.max_column

# 获取当前月份整数值
current_month = date.today().month

# 倒序遍历行,避免删除行后索引偏移导致漏判
for row_num in range(max_row, 0, -1):
    for col_num in range(1, max_col + 1):
        current_cell = ws.cell(row=row_num, column=col_num)
        # 判定为当前月份的日期就删除整行
        if current_cell.is_date and current_cell.value.month == current_month:
            ws.delete_rows(row_num)
            break

wb.save("file2.xlsx")

内容的提问来源于stack exchange,提问作者Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:06:03