用python操作excel电子表格
我是Python新手,尤其是在Excel中使用Python时。我需要编写代码,在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”写入其中。到目前为止,这是我拥有的代码(一点也不多):用python操作excel电子表格,python,python-3.x,automation,excel-2010,string-search,Python,Python 3.x,Automation,Excel 2010,String Search,我是Python新手,尤其是在Excel中使用Python时。我需要编写代码,在a列的每个单元格的较长字符串中搜索字符串“Mac”、“Asus”、“AlienWare”、“Sony”或“Gigabit”。根据它在a列单元格的整个条目中找到的字符串,它应该将这5个字符串中的一个写入C列单元格的相应行。否则,如果找不到这五个元素中的任何一个,它会将“Other”写入C列中的相应行。例如,如果A2列的单元格包含字符串“ProLiant Asus DL980 G7”,则正确的代码将写入“Asus”到C2
我在openpyxl上没有做过很多工作,但听起来你好像在尝试做一个简单的字符串搜索 您可以使用访问单个单元格
cell1.internal_value
然后,您的if/else语句将类似于
if "HP" in str(cell1.internal_value):
数据可以直接分配给单元格,这样您就可以
ws['C' + str(i)] = "HP"
您可以对单元格中的所有数据执行此操作。您尚未尝试编写任何代码来解决此问题。您可能需要首先让openpyxl写入excel工作簿,并验证其是否正常工作,即使它是虚拟数据。此页面看起来很有帮助- 一旦这项工作正常,您所需要的就是一个简单的函数,它接受一个字符串作为参数
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"
尝试一下这些方法,如果您有任何问题,请告诉我您遇到了什么问题。谢谢,我会尝试一下!您只是要求代码来实现这一点吗?还是您有具体的问题?我已经找到了一种不同的方法来实现这一点,而无需使用下面的有用想法(以满足我的具体需要),但我有一个特定的问题。我可以让我的代码写入excel电子表格,但前提是我指定了一个特定的行(因此只填充一个单元格)。如果我使用row=I(尝试遍历所有行),我会收到一个错误:“ValueError:行或列值必须至少为1”但很明显,我正试图填充整个第三列,并让代码在行数上进行调整。我可能犯了一个简单但无知的错误。好吧,伙计们,我发现了。谢谢你们的帮助。当然,我只需要将“I”改为“I+1”!如果你们遇到问题,我很乐意提供帮助,请在这里发表评论!
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"