Python 3.x 如何跳过循环中的空.xls单元格:XLRD(Python)

Python 3.x 如何跳过循环中的空.xls单元格:XLRD(Python),python-3.x,selenium,xls,xlrd,Python 3.x,Selenium,Xls,Xlrd,我正在读取一个.xls文件,通过单元格解析列,并使用xlrd对照amazon订单上的web元素进行检查。在.xls文件包含空单元格之前,一切似乎都正常工作。然后解析空单元格,然后将其作为web元素“找到” from selenium import webdriver import xlrd sheet = wb.sheet_by_index(0) sheet.cell_value(0, 0) for i in range(sheet.nrows): po = (sheet.cell_v

我正在读取一个.xls文件,通过单元格解析列,并使用xlrd对照amazon订单上的web元素进行检查。在.xls文件包含空单元格之前,一切似乎都正常工作。然后解析空单元格,然后将其作为web元素“找到”

from selenium import webdriver
import xlrd

sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
for i in range(sheet.nrows):
    po = (sheet.cell_value(i, 3))
    tracking = (sheet.cell_value(i, 10))
    if driver.find_elements_by_link_text(po):
        print("FOUND!!!!", po)
xls文件如下所示:(为了简单起见,我只使用了2列)

亚马逊的订单号以111开头,在本例中为111。较小的订单号是针对另一个站点的,但也可以,因为它不是作为web元素找到的。问题是COL3中的空白单元格,因为它们是解析的,<强>是< /强>作为Web元素找到。

from selenium import webdriver
import xlrd

sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
for i in range(sheet.nrows):
    po = (sheet.cell_value(i, 3))
    tracking = (sheet.cell_value(i, 10))
    if driver.find_elements_by_link_text(po):
        print("FOUND!!!!", po)
第10列用于查找与作为web元素找到的相应单元格关联的跟踪号。空白单元格可以,因为所有亚马逊订单都有相应的跟踪号。

@evolve710,您好。 从中,我建议使用
xlrd.XL\u CELL\u EMPTY
检查这里

因此,工作簿中所有非空单元格的整个迭代片段如下所示:

import xlrd
book = xlrd.open_workbook("sample.xls")
ref3d = book.name_map["moscow"][0].result.value[0]

# Iterate over each sheet
for sheet_num in range(ref3d.shtxlo, ref3d.shtxhi):
    sheet = book.sheet_by_index(sheet_num)
    print sheet.name
    row_lim = min(ref3d.rowxhi, sheet.nrows)
    col_lim = min(ref3d.colxhi, sheet.ncols)

    # Iterate over each column
    for row_num in range(ref3d.rowxlo, row_lim):

        # Iterate over each row
        for col_num in range(ref3d.colxlo, col_lim):
            col_type = sheet.cell_type(row_num, col_num)

            if not col_type == xlrd.XL_CELL_EMPTY:
                cval = sheet.cell_value(row_num, col_num)
                print "\t({0},{1}): {2}".format(
                    row_num, col_num, cval)

希望这个方法能帮助你。

我终于找到了答案。代码如下所示:

sheet = wb.sheet_by_index(0)
sheet.cell_value(0, 0)
for i in range(sheet.nrows):
    cell = sheet.cell(i, 3)
    cty = cell.ctype
    if cty == xlrd.XL_CELL_EMPTY:
        continue
    else:
        po = (sheet.cell_value(i, 3))
        tracking = (sheet.cell_value(i, 10))
        if driver.find_elements_by_link_text(po):
            print("FOUND!!!!", po)
如果要检查单元格值是否为nothing,这可能会添加另一个值