使用Python从值的交集中检索Excel表中的值

时间:2011-11-23 09:46:24

标签: python xlrd import-from-excel

我在Excel中有一个表格,我希望能够阅读它(我知道如何实现这一点)但也要告诉Python,如果有d,D和B的某些值,则返回维值在我的程序中作为变量的顶部第一行。我已经阅读了有关交叉路口的各种帖子,我不确定它们是否是我所寻找的,因此我决定提出自己的问题。

我的Excel表格格式如下(因为我无法发布图片,只是一个小例子):

                      Dimensions
d      D  |  17      27    37     47       17-47
          |                B           |   rsmin
0.6    2     0.8     -     -       -       0.05
1    2.5     1       -     -       -       0.05
1.5    3     1       -     1.8     -       0.05
2      4     1.2     -     2       -       0.05

如果我举一个例子,我有一个d = 2,D = 4(这两个值将始终在同一行),B = 2.因此,我希望将值Dimension = 37返回给我的程序。我还有一个问题,我有几个工作表要读取,所以我将这个表称为Table1,我必须首先阅读所有工作表,其中包括一个表在同一.xls文件中。

1 个答案:

答案 0 :(得分:1)

以下是根据您想要的猜测来搜索您的表格的方法。你应该能够自己做5圈表循环。

def search(table_iterator, d, D, B):
    headings = next(table_iterator)
    junk = next(table_iterator)
    key = [d, D]
    for row in table_iterator:
        if row[0:2] != key: continue
        for index, value in enumerate(row[2:-1]):
            if value == B: 
                return headings(2 + index)
    return None

在评论中提出问题后更新:

“”“这应该返回我想要的维度值?”“”

是的,它应该。但这是一种普遍的方法。我从字面上不回答“gimme teh codez”的问题。你必须做一些工作,要么写一个适合你正在阅读表格的工具(大概是xlrd)的“table_iterator”,要么把它作为伪代码对待你作为指导并完全重写以适应工具。

“”“最后我将所有表格编译成一个.xls文档但是使用了几个工作表。我是否有一种特殊的方法可以搜索所有工作表然后应用这些代码?”“”

正如我所说的那样,你应该能够自己进行5圈表循环。搜索所有工作表和然后应用此代码似乎是一种奇怪的方法。您需要迭代工作表,搜索每个工作表,直到找到匹配的行。