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

使用Pandas读取Excel并标记含删除线的行

用Pandas读取Excel并标记含删除线单元格的行

核心思路

Pandas本身无法直接读取单元格格式(比如删除线),所以需要结合openpyxl提取格式信息,再将标记结果合并到Pandas的DataFrame中——既保留Pandas处理列的便利性,又能实现标记需求。

具体实现步骤

  • 用openpyxl加载Excel文件,遍历每行检查是否存在带删除线的单元格,记录行号
  • 用pandas读取Excel数据生成DataFrame
  • 给DataFrame添加标记列,根据第一步的结果标记对应行

代码示例

import openpyxl
import pandas as pd

# 1. 用openpyxl检测带删除线的行
wb = openpyxl.load_workbook("your_excel_file.xlsx")
ws = wb.active  # 处理第一个工作表,指定表名可改为wb["目标表名"]

# 记录需标记的行号(openpyxl行号从1开始,Pandas索引从0开始)
strikethrough_row_nums = set()

# 假设第一行是表头,从第二行开始检查数据行
for row in ws.iter_rows(min_row=2):
    current_row = row[0].row
    for cell in row:
        if cell.font.strike is True:
            strikethrough_row_nums.add(current_row)
            break  # 只要有一个单元格带删除线,就标记该行,无需继续检查

# 2. 用Pandas读取Excel数据
df = pd.read_excel("your_excel_file.xlsx")

# 3. 添加标记列:转换行号对应关系
df["has_strikethrough"] = df.index.map(lambda idx: idx + 1 in strikethrough_row_nums)

补充说明

  • 如果表头不是第一行,调整iter_rows的min_row参数,同时修改Pandas读取时的header参数匹配表头位置
  • 标记列has_strikethrough为布尔值,True表示该行存在带删除线的单元格,False表示无
  • 后续可正常对DataFrame执行增删列、数据清洗等操作,标记列会同步保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:52:43