如何使用python查找包含特定文本的单元格?

2022-04-07 00:00:00 python openpyxl

问题描述

我正在尝试迭代xlsx文件,并使用python找到包含我们公司名称的单元格。该文件由2张或2张以上的表格组成,每张表格包含6个公司的信息。我正在寻找的每个单元格的结构如下:

单元格F6=第一个(Company_A+Company_B)

单元格G6=第二个(Company_C+Company_D)

单元格H6=3(Company_E+Company_F) 以此类推。

我要查找包含Company_A的单元格。我已经进行了一些编码,但遇到一些问题。

我能做的编码如下:

import openpyxl
bid = openpyxl.load_workbook('C:/Users/User/Desktop/bidding.xlsx', data_only=True)

for sheet in bid.worksheets:
    for row in sheet.iter_rows():
        for entry in row:
            if entry.value == '1ST(Company_A+Company_B)':
                print(entry.offset(row=1).value)
                print(round(entry.offset(row=8).value/100,5))

我可以找到所需的值,但我希望在不输入所有内容的情况下找到单元格


解决方案

当您使用==时,脚本将检查单元格中的字符串是否与该字符串完全匹配。而应使用in

您的代码应该是:

import openpyxl
bid = openpyxl.load_workbook('C:/Users/User/Desktop/bidding.xlsx', data_only=True)

for sheet in bid.worksheets:
    for row in sheet.iter_rows():
        for entry in row:
            try:
                if 'Company_A' in entry.value:
                    print(entry.offset(row=1).value)
                    print(round(entry.offset(row=8).value/100,5))

             except (AttributeError, TypeError):
                 continue

相关文章