如何在包含字符串的列中查找单元格,并且在另一行中查找单元格的 return 值?
How to find cell in a column that contains a string and return value of a cell in another of row?
如果单元格包含 C
列中的 "external"
,则将 D
列中的单元格 "good"
复制到 E
列中,在A
列包含 003
.
的行
下面是 excel 中的两张图片(之前和之后)。
之前:
之后:
我试图找到一个正确的脚本,但没有成功。它需要更改为我放置“???”的“行”和“列”。 :
import openpyxl
from openpyxl import load_workbook
wb_source = openpyxl.load_workbook("path/file.xlsx")
sheet = wb_source['Sheet1']
x=sheet.max_row
y=sheet.max_column
for r in range(1, x+1) :
for j in range(1, y+1):
copy(sheet.cell(row= ???, column=???)
if str(copy.value)=="external":
sheet.??
break
wb_source.save("path/file2.xlsx")
应该如何添加(行和列)?
- 阅读全文sheet。
- 为外部产品创建字典
- 写回Excel。
尝试:
import openpyxl
wb = openpyxl.load_workbook("file1.xlsx")
ws = wb['Sheet1']
data = list()
for r, row in enumerate(ws.iter_rows()):
data.append([cell.value for c, cell in enumerate(row)])
mapper = {l[0]: l[-1] for l in data if l[2]=="external"}
for r, row in enumerate(ws.iter_rows()):
if ws.cell(r+1, 1).value in mapper:
ws.cell(r+1, 5).value = mapper[ws.cell(r+1, 1).value]
wb.save("file2.xlsx")
如果单元格包含 C
列中的 "external"
,则将 D
列中的单元格 "good"
复制到 E
列中,在A
列包含 003
.
下面是 excel 中的两张图片(之前和之后)。
之前:
之后:
我试图找到一个正确的脚本,但没有成功。它需要更改为我放置“???”的“行”和“列”。 :
import openpyxl
from openpyxl import load_workbook
wb_source = openpyxl.load_workbook("path/file.xlsx")
sheet = wb_source['Sheet1']
x=sheet.max_row
y=sheet.max_column
for r in range(1, x+1) :
for j in range(1, y+1):
copy(sheet.cell(row= ???, column=???)
if str(copy.value)=="external":
sheet.??
break
wb_source.save("path/file2.xlsx")
应该如何添加(行和列)?
- 阅读全文sheet。
- 为外部产品创建字典
- 写回Excel。
尝试:
import openpyxl
wb = openpyxl.load_workbook("file1.xlsx")
ws = wb['Sheet1']
data = list()
for r, row in enumerate(ws.iter_rows()):
data.append([cell.value for c, cell in enumerate(row)])
mapper = {l[0]: l[-1] for l in data if l[2]=="external"}
for r, row in enumerate(ws.iter_rows()):
if ws.cell(r+1, 1).value in mapper:
ws.cell(r+1, 5).value = mapper[ws.cell(r+1, 1).value]
wb.save("file2.xlsx")