2013-01-21 24 views
0

我知道这是非常基本的,但我已经使用Python 2个星期了,并且将我的头靠在墙上试图解决这个问题。我已经检查了几乎每一个在这里的线程,并试图理解Python 2.7文档,并研究了Hammod的编程与Win32的任何摘录,我可以找到。 以下是我的部分代码。我正在将一个从excel命名的范围拉入到一个Python Gui中。数据进入行= 4,列= 1,因为我编码它。问题是我需要解析这个命名范围,以便范围(这是四个浮点数)在行= 4 clomuns 1,2,3,4之间分开。我知道这是基本的。如果我能在其他地方找到答案,我不会发布。如果有人能够指引我正确的方向,我会非常感激。从excel导入列表,但无法将其分成4列

xl = win32com.client.Dispatch('excel.application') 
    wbs = xl.Workbooks 
    wb = wbs.Open('C:\Users\Owner\Desktop\AutoPrime.xls') 
    xl.visible = 1 
    xlSheet = xl.Sheets(1) 
    xlSheet.Range('Fronts').Value 

    #Frame 
    Ftreas = Frame(F, relief="groove", border=2) 
    Ftreas.pack(side="left") 
    lp2a = Label(Ftreas, text=xl.ActiveSheet.Range('Fronts').Value, justify='center') 
    lp2a.grid(row=4,column=1, sticky='EW') 

回答

0

虽然我还没有与植酮工作过,我知道你行xlSheet.Range('Fronts')会返回一个Range对象。您可以访问具有默认属性的Range对象的单个单元,例如:

 
rng = xlSheet.Range('Fronts') 
val1 = rng(1, 1).Value 
val2 = rng(2, 1).Value //this returns the cell in row 2/column 1 of the range 
arr = rng.Cells //this will return a 4x1 array of values 
+0

谢谢。我会有一种方法将它合并到一个循环中,这样我就不必逐个拉取每个单元格。理想情况下,我想要创建一个获取数据的for循环,并通过4列进行输入。然后取下4位并将其送入下面的行。我需要为几帧做这个,所以我正在考虑创建一个类。这有意义吗? –

+0

不客气。当然,你可以做一个循环,而不是寻找每个单元格(这只是为了更好地显示对象的属性)。我不会去这里额外的课程,而只是有2个嵌套循环 - 第一个从行/帧到下一个,第二个到4列...... –

+0

我添加了你的代码,我得到错误“val1 = rng.Cells(1,1)。值 AttributeError:'元组'对象没有属性'Cells'”我注意到你在你的评论中提到了PHP。我正在使用Python(我不小心将PHP标记了,道歉)我正在尽我所能使用最后一行。我thinmk这正是我需要的,.. –