使用openpyxl查找包含具有特定值的单元格的行

2022-07-06 12:36:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我对openpyxl完全陌生,所以,正如你所能想象的,当我试图利用它时,我经历了相当艰难的时期

我有一个Excel报表,它只包含一个工作表(称为Sheet1))。我想在所有单元格中搜索包含特定字符串(本例中为产品名ABC)的单元格

然后我想复制包含ABCproduct name的单元格的行中每个单元格的内容,并将每个单元格分配给一个变量

为了让您更好地了解我正在努力实现的目标,我将举一个例子:

Example

所以在本例中,我只复制行2、4、6中的单元格(因为它们只包含ABC乘积)

我已经查找过类似的问题和答案,但我不理解(以前从未使用过Excel)


Tags: 字符串name利用报表excel经历abcsheet1想象openpyxl本例时期陌生产品名abcproduct
3条回答
网友
1楼 ·
from openpyxl import load_workbook

wb = load_workbook("report.xlsx")
ws = wb.active

for row in ws.rows:
if row[4].value == "ABC":
    for cell in row:
        print(cell.value, end=" ")
    print()
网友
2楼 ·

没有必要用熊猫来做这个

from openpyxl import Workbook
import openpyxl

file = "enter_path_to_file_here"
wb = openpyxl.load_workbook(file, read_only=True)
ws = wb.active

for row in ws.iter_rows("E"):
    for cell in row:
        if cell.value == "ABC":
            print(ws.cell(row=cell.row, column=2).value) #change column number for any cell value you want
网友
3楼 ·

使用openpyxl来实现这一点是否重要?如果不是,我建议使用熊猫

    import pandas as pd

    df = pd.read_excel("path_to_excel_file")
    df_abc = df[df["Products"] == "ABC"] # this will only contain 2,4,6 rows

然后:

    for row in df_abc.iterrows():
        # do what you want with the row