You need to enable JavaScript to run this app. 使用xlrd读取Excel值后转换为整数/整数列表的方法
优惠活动
大模型
产品
解决方案
定价
更多

使用xlrd读取Excel值后转换为整数/整数列表的方法

可行实现方法

在读取单元格值的环节加一层类型判断与转换逻辑,就能同时覆盖单值转整数、多值转整数列表两种场景,无需调整原有矩阵M的初始化逻辑。

核心处理规则

对从Excel读出的原始值按类型分类处理:

  • 原始值为int/float类型(无逗号分隔的单值场景):直接强制转为整数类型
  • 原始值为str类型(带逗号分隔的多值场景):按逗号拆分字符串,对每个拆分片段去除首尾空白后逐个转为整数,拼接为整数列表

可直接复用的代码

先把解析逻辑封装成独立小函数,放在循环外部即可:

def parse_cell_value(raw_val):
    # 纯数值单值场景:直接转整数
    if isinstance(raw_val, (int, float)):
        return int(raw_val)
    # 逗号分隔的字符串场景:拆分转整数列表
    if isinstance(raw_val, str):
        return [int(segment.strip()) for segment in raw_val.split(",") if segment.strip()]
    # 空值兜底返回0
    return 0

将原代码中读取单元格值的赋值行替换为调用该函数,即可完成类型转换:

M = [[0]* n[i] for i in range(nJobs)]
iter_i = 0
for i in range(nJobs):
    if i != 0:
        iter_i = iter_i+n[i-1]
    for j in range(n[i]):
        # 读取单元格原始值
        raw_cell_val = DataSheet.cell(5 + j + iter_i, 5).value
        # 自定义解析逻辑完成类型转换
        M[i][j] = parse_cell_value(raw_cell_val)

适配说明

  • 无需手动判断M[i][j]对应单元格是单值还是多值,解析逻辑会自动根据值的类型返回整数或者整数列表
  • 兼容数值前后带空格、分隔逗号前后带空格的格式,比如" 5 , 8 , 12 "这类内容也能正常解析
  • 如果需要处理Excel中的脏数据(比如单元格夹杂非数字内容),可以在转int环节增加异常捕获,避免程序中断

内容的提问来源于stack exchange,提问作者Yan H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 01:36:04