我是Python新手,尤其是在使用Excel时。我需要编写代码来搜索A列中每个单元格的较长字符串中的字符串“Mac”,“Asus”,“AlienWare”,“Sony”或“Gigabit”。取决于它在哪个字符串中找到在A列单元格中的整个条目中,它应该将这5个字符串中的一个写入C列单元格中的相应行。否则,如果它没有找到任何五个,它会将“Other”写入C列中的相应行。例如,如果列A2的单元格包含字符串“ProLiant Asus DL980 G7,则正确的代码将写入”Asus“列C2的单元格。它应该对A列中的每个单元格执行此操作,将相应的字符串写入C列中的相应单元格.A列中的每个单元格都将包含Mac,Asus,AlienWare,Sony或Gigabit中的五个字符串之一。如果它不包含其中一个字符串,我希望第3列中的相应单元格写入字符串“Other”。到目前为止,这是我的代码(根本不是):
{{1}}
答案 0 :(得分:1)
我没有使用openpyxl,但听起来你正在尝试进行简单的字符串搜索。
您可以使用
访问单个单元格cell1.internal_value
然后,你的if / else语句看起来像
if "HP" in str(cell1.internal_value):
可以将数据直接分配给单元格,这样就可以
ws['C' + str(i)] = "HP"
您可以对单元格中的所有数据执行此操作
答案 1 :(得分:1)
您还没有尝试编写任何代码来解决问题。您可能希望首先获取openpyxl以写入excel工作簿并验证它是否正常工作 - 即使它是虚拟数据。此页面看起来很有帮助 - here
一旦它正常工作,你所需要的只是一个简单的函数,它接受一个字符串作为参数。
def get_column_c_value(string_from_column_a):
if "Lenovo" in string_from_column_a:
return "Lenovo"
else if "HP" in string_from_column_a:
return "HP"
# strings you need to check for here in the same format as above
else return "other"
试试这些,如果您有任何问题,请告诉我您遇到的问题。