【发布时间】:2018-12-21 21:06:21
【问题描述】:
我正在尝试创建将在单元格中搜索诸如“蓝色”之类的颜色值的代码,如果在该单元格中找到它,则将该值粘贴到另一个单元格中,然后在几个范围内重复此操作一百种颜色。
一旦发生这种情况,对列中的下一个单元格再次执行相同的过程,并粘贴到相应行中的另一个单元格中,直到每个填充的单元格都搜索完所有颜色值。
我有创建 Excel 工作表的代码,该工作表将提取一些预定义的值,但我不确定如何扩展代码以包含数百种不同的颜色。
#Excel Project to fill attributes quickly.
#Importing Modules
import os, openpyxl
#defining variables
wb = openpyxl.Workbook()
sheet = wb['Sheet']
#Asking for your category
x = input('What is your category?')
#Writing header
sheet['A1'] = 'Short Description'
sheet['B1'] = 'Long Description'
sheet['C1'] = 'Item'
sheet['J1'] = 'Color'
#writing attribute values
sheet['A2'] = 'Amazing blue shiny fantastic shirt ee-9003'
sheet['A3'] = 'Red dull jacket'
#Writing values for "Color"
if 'Red' or 'red' in sheet['A2'].value:
sheet['J2'] = 'Red'
elif 'Orange' or 'orange' in sheet['A2'].value:
sheet['J2'] = 'Orange'
elif 'Blue' or 'blue' in sheet['A2'].value:
sheet['J2'] = 'Blue'
if 'Red' or 'red' in sheet['A3'].value:
sheet['J3'] = 'Red'
elif 'Blue' or 'blue' in sheet['A3'].value:
sheet['J3'] = 'Blue'
#Saving to your desktop
os.chdir(r'E:\Desktop')
wb.save('Attributes_filled_' + str(x) + '.xlsx')
到目前为止,我希望代码第一次生成“蓝色”,第二次生成“红色”,但根据我对代码的排序方式,我会得到第一个 if 语句结果。
【问题讨论】:
-
你可能想看看
Select case -
最好的解决方案是创建一个单元格值字典,以便您可以搜索它。我之前在 Stackoverflow 上回答过这个问题,所以你可以搜索它。
标签: excel python-3.x openpyxl