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

Python+Openpyxl批量读取Excel报价文件时型号数据重复问题求助

问题原因

你定义的models是Quote类的类属性,所有Quote实例会共享同一个列表对象,而不是每个实例拥有独立的型号存储空间。
你给quote.number、quote.name等基础属性赋值时,是直接给当前实例绑定了独立的实例属性,会覆盖类属性的查找逻辑,所以每份报价的基础信息读取正常。但你没有给quote.models重新赋值,只是调用了它的append方法追加数据,所有实例的操作实际上都作用在同一个全局共享的列表上,最终表现为所有报价的型号列表完全一致。

修复方案

修改类定义,把原来的类属性全部改为在__init__方法中初始化的实例属性,保证每个实例拥有独立的存储空间:

class Model:
    def __init__(self):
        self.SKU = None
        self.cost = None
        self.qty = None
        self.qty_remaining = None

class Quote:
    def __init__(self):
        self.name = None
        self.number = None
        self.start_date = None
        self.end_date = None
        # 每个实例初始化独立的型号列表
        self.models = []

额外注意点

你描述的文件格式里标注开始日期存于A4单元格、结束日期存于A5单元格,但当前代码读取的是A6和A7单元格,需要确认是否为笔误,避免日期读取错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:27:03