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

使用openpyxl获取Excel单个单元格值报TypeError问题求助

问题解答

库选择建议

  • 如果你的需求仅涉及简单的单元格读写、需要保留原Excel的格式(比如公式、单元格样式),选择Openpyxl即可
  • 如果核心需求是做数值计算、表格批量处理,优先选择Pandas,它底层可以对接Openpyxl完成Excel读写,处理表格数据的代码量会少很多,不需要自行遍历行处理单元格

代码出错的原因

报错'<' not supported between instances of 'tuple' and 'int'的核心问题出在for i in burndownData.iter_rows():这行:

iter_rows()遍历返回的每一项i是当前行所有单元格组成的元组,不是行号整数,你直接把元组传给cell()方法的row参数,自然会触发类型不匹配的报错。

Openpyxl写法修正

你可以直接遍历iter_rows()返回的单元格元组拿值,不需要额外调用cell()方法,修正代码示例:

import numpy as np

collectionOrder = np.empty([numRows,2], dtype='object')
numCountries = 0
# min_row参数可以跳过表头,values_only=True直接返回单元格值,不用再取.value
for row_idx, row_val in enumerate(burndownData.iter_rows(min_row=1, values_only=True), start=1):
    first_col_val = row_val[0] # 取第一列的值,对应你之前的column=1
    print("elemnt=", first_col_val)
    # 先判断是数值类型再调用np.isnan,避免非数值类型报错
    if first_col_val is not None and isinstance(first_col_val, (int, float)) and not np.isnan(first_col_val):
        idx = int(first_col_val)
        collectionOrder[idx][0] = first_col_val
        collectionOrder[idx][1] = row_idx # 这里存储的是Excel对应的实际行号
        numCountries += 1

更简便的Pandas实现方式

如果用Pandas完成这个需求,代码会更简洁,示例如下:

import pandas as pd
import numpy as np

# 读取Excel表,sheet_name替换成你要读取的工作表名
df = pd.read_excel("你的Excel文件路径.xlsx", sheet_name="burndownData对应的工作表名")
# 筛选第一列非空的数值行
valid_mask = df.iloc[:,0].notna() & df.iloc[:,0].apply(lambda x: isinstance(x, (int, float)))
valid_df = df[valid_mask]
# 直接生成你需要的collectionOrder结构
collectionOrder = np.empty([len(df),2], dtype='object')
collectionOrder[valid_df.iloc[:,0].astype(int).values, 0] = valid_df.iloc[:,0].values
collectionOrder[valid_df.iloc[:,0].astype(int).values, 1] = valid_df.index + 1 # 行号默认从1开始和Excel对应
numCountries = len(valid_df)

# 计算完成后输出新工作表
with pd.ExcelWriter("输出文件路径.xlsx", engine="openpyxl") as writer:
    # 你可以把计算后的结果转成DataFrame写入
    pd.DataFrame(collectionOrder, columns=["数值列", "行号列"]).to_excel(writer, sheet_name="新工作表名", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 20:15:00