0

我在 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

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

4

1 回答 1

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

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

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

是的,它应该。但这是一种通用方法。我不会从字面上回答“给我密码”的问题。您必须做一些工作,要么编写一个适合您正在读取表的工具(可能是 xlrd)的“table_iterator”,要么将其视为伪代码,您将其作为指导并完全重写以适应工具。

"""最后,我将所有表格编译成一个 .xls 文档,但使用了多个工作表。有没有一种特殊的方法可以搜索所有工作表,然后应用此代码?"""

正如我所说,您应该能够自己完成 5 个表的循环特技。搜索所有工作表然后应用此代码似乎是一种奇怪的方法。您需要遍历工作表,搜索每个工作表,直到找到匹配的行。

于 2011-11-23T11:26:31.493 回答