如何检查Excel工作表指定列每个单元格的数据类型
解决方案
核心逻辑为遍历Excel行时判断指定列的数值类型,识别到int类型的异常值时,将整行内容写入文本文件。
你可以直接使用以下修改后的代码:
from openpyxl import load_workbook book = load_workbook('export.xlsx') sheet = book['Data'] # 目标列索引(从0开始计数,当前对应你原代码中的第7列,可按需调整) target_col = 6 # 异常行输出文件路径 output_path = "异常行记录.txt" with open(output_path, "w", encoding="utf-8") as f: # 若第一行是表头不需要校验,取消下方注释即可跳过 # next(sheet.rows) for row in sheet.rows: check_value = row[target_col].value # 校验值类型是否为整数 if type(check_value) == int: # 整行内容转为字符串,用制表符分隔后写入文件,可自定义分隔符 line_content = "\t".join([str(cell.value) if cell.value is not None else "" for cell in row]) f.write(line_content + "\n")
补充说明
- 如需调整校验的目标列,修改
target_col参数即可,注意openpyxl的行列索引默认从0开始计数 - 如需校验其他异常类型,修改
type(check_value) == int中的判断类型即可,例如校验浮点数改为type(check_value) == float - 输出文本的列分隔符可以自定义,将
"\t"替换为逗号、空格等你需要的分隔符即可
内容的提问来源于stack exchange,提问作者vieroli
相关产品推荐
相关产品推荐

