在openpyxl中读取具有有效数字的excel单元格

Posted

技术标签:

【中文标题】在openpyxl中读取具有有效数字的excel单元格【英文标题】:Read the cells of excel with valid numbers in openpyxl 【发布时间】:2018-12-10 20:25:58 【问题描述】:

我正在通过 python - openpyxl 库解析一些 Excel 文件。

我的目标是阅读位于某个单词或字母(如 N)下的单元格。 因此,一旦找到 N,代码应该移动到下面的单元格,如果它包含有效数字,则将其放入列表中,否则会中断阅读。 我在定义正确的条件时遇到问题。

for col_cells in sheet.iter_cols(min_col=2, max_col=2):

        for cell in col_cells:

            if cell.value == "N":

                print (cell)

               

                print ("N is Found")

                break

 

N=[]; i=1; celln=cell    

while celln.value =! 0:

    cellb=cell.row + i

    Nlist. append(sheet[cell.column+str(cellb)].value) 

    i=i+1

    print(i)

    celln=sheet[cell.column+str(cellb)]

【问题讨论】:

【参考方案1】:

您不必打破整个循环,每个cell 对象都有它的坐标,因此您可以使用这些坐标依次抓取下一个单元格。例如:

some_list = []

for col_cells in sheet.iter_cols(min_col=2, max_col=2):
    for cell in col_cells:
        if cell.value == "N":
            try:
                some_list.append(int(sheet[''.format(cell.column, cell.row+1)].value))

            except ValueError:
                continue

而不是检查它是否是一个有效的数字,只需尝试将其更改为 int 并在失败时捕获异常。请记住,在 Python 中“请求宽恕比请求许可更容易”(EAFP)。

【讨论】:

以上是关于在openpyxl中读取具有有效数字的excel单元格的主要内容,如果未能解决你的问题,请参考以下文章