Python 3.x 如何跳过循环中的空.xls单元格:XLRD(Python)
我正在读取一个.xls文件,通过单元格解析列,并使用xlrd对照amazon订单上的web元素进行检查。在.xls文件包含空单元格之前,一切似乎都正常工作。然后解析空单元格,然后将其作为web元素“找到”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
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,这可能会添加另一个值