我对openpyxl完全陌生,因此,正如您可以想象的那样,在尝试使用openpyxl时,我遇到了很多困难。
我有一个Excel报告,其中仅包含一张工作表(称为工作表1)。我想搜索所有包含特定字符串(在这种情况下为产品名称ABC)的单元格。
然后,我要复制包含具有ABC产品名称的单元格的行中每个单元格的内容。并将每个单元格分配给一个变量。
因此,在这种情况下,我将仅复制2、4、6行中的单元格(因为它们仅包含ABC产品)。
我已经查找了类似的问题和答案,但是我不理解(以前从未使用过Excel)。
答案 0 :(得分:3)
无需使用熊猫。
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
答案 1 :(得分:2)
使用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
答案 2 :(得分:2)
signInWithEmailAndPassword()
答案 3 :(得分:0)
wb = load_workbook("report.xlsx")
ws = wb.active
abc_rows=[]
for row in range(2,ws.max_row+1):
if(ws[row][4]=='ABC'):
abc_rows.append(row)
要分别访问选定的行,请进一步添加此代码
i=1
abc_dict={}
for row in ws.values:
if(i in abc_rows):
(a,b,c,d,e,f,g,h,i,j,k,l)=row
abc_dict[i]=row
i=i+1
要单独访问选定的行,请使用
abc_dict [2] 给出整行作为元组,而 abc_dict [2] [0] 给出 第一个单元格值。您可以解析直到 abc_dict [2] [11] 来获取每个单元格 的选定行分开。