首页 > 解决方案 > 在excel电子表格中搜索URL并使用python打印相应的行

问题描述

我对编码很陌生,我正在尝试编写一个简单的代码来搜索 excel 文件以查看它是否包含某些 URL 文本字符串。例如,要查找包含“www.italaw.com”的任何链接,我会搜索“italaw”,如果找到该值,则希望打印整个相应的行。

在它找到与 URL 匹配的地方,我希望它在新的 excel 文件中为这些结果打印整行。

到目前为止,我有以下内容:

    import xlrd  
    filepath = 'Appended_Reports.xlsx'
    textstring1 = "italaw"
    textstring2 = "worldbank"
    wb = xlrd.open_workbook(filepath)
    ws = wb.sheet_by_index(0)
    
    for row in range(ws.nrows):
         target = str(ws.cell(row, 0).value)
         if target == textstring1:
              print(target)
              print(row)

for row in range(ws.nrows):
         target = str(ws.cell(row, 0).value)
         if target == textstring2:
              print(target)
              print(row)

老实说,我有点迷茫,不确定我是否以正确的方式进行,即使我知道我正在搜索的文本包含在第一列中,我似乎也没有得到任何点击电子表格,欢迎任何想法!

标签: pythonexcelstringsearch

解决方案


这是一个使用 openpyxl 的示例,我们在其中打开工作簿中的第一张工作表并搜索包含“cash”子字符串的任何单元格

import openpyxl as xl

wb = xl.load_workbook("Finances.xlsm", data_only=True)

for row in wb[wb.sheetnames[0]]:
    for cell in row:
        if (v := cell.value) and cell.data_type == 's' and 'cash' in v:
            print(
                f'Cell {cell.coordinate} is type {cell.data_type} and value is "{v}"')

对于这个特定的电子表格,这将显示:-

单元格 A41 是类型 s,值是“总现金”


推荐阅读