x8774763 发表于 2018-5-8 13:20:20

EXCEL传递值到PYTHON的时候,只保存了最后一个,怎么才能每一个值都保存?


以下代码是PYTHON访问EXCEL,然后我怎么才能把不同单元格的值,赋值给我的类?
目前遇到的问题就是,赋值的时候,都是指向同一个内存,怎么处理才能把它变成不同的内存地址?现在输出的都是最后一个单元格的数值.
出问题的代码:
    Seg.Name = ws.cell(row=7, column=xx).value
    print('Name:', Seg.Name, 'Base:', Base_Count,'SegMent:', SegMent_Count, 'ID:', id(Seg))

以下是完整代码:

# -*- coding: UTF-8 -*-
import openpyxl
class SegMent_Property:
    Top = 'N'
    Down = 'N'
    Left = 'N'
    Right = 'N'
    Front = 'N'
    Back = 'N'
    Name = 'N'
    Len = 0
    Panel_Wide = 0
    Panel_Len = 0
    Pressure = '-'
    Panel_Intensity = 1

class Panel:
    Wide = 0
    Len = 0
    Max_Wide = 0
    Max_Len = 0
    Pressure = '-'
    Name = 'N'
    In_Material = 'N'
    Out_Material = 'N'

wb = openpyxl.load_workbook('2018-2-4 new temp -V1.xlsx',read_only=True,data_only=True)
ws = wb['功能段排布']


while ws.cell(row = 7 , column = xx).value != None:
    if ws.cell(row = 7 , column = xx).value == '断点':
      All_SegMent.append(SegMent_Count - 1)
      Base_Count += 1
      SegMent_Count = 0

    Seg.Name = ws.cell(row=7, column=xx).value
    Seg.Len = ws.cell(row=8, column=xx).value
    Seg.Top = ws.cell(row=13, column=xx).value
    Seg.Down = ws.cell(row=14, column=xx).value
    Seg.Left = ws.cell(row=15, column=xx).value
    Seg.Right = ws.cell(row=16, column=xx).value
    Seg.Front = ws.cell(row=16, column=xx).value
    Seg.Back = ws.cell(row=16, column=xx).value
    print('Name:', Seg.Name, 'Base:', Base_Count,'SegMent:', SegMent_Count, 'ID:', id(Seg))

    SegMent_Count += 1
    xx += 1






不自律的笨鸟 发表于 2021-5-15 04:22:42

看来还有很多东西要学习啊!
页: [1]
查看完整版本: EXCEL传递值到PYTHON的时候,只保存了最后一个,怎么才能每一个值都保存?