使用python处理excel电子表格

时间:2018-06-11 21:17:14

标签: python python-3.x automation excel-2010 string-search

我是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}}

2 个答案:

答案 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"

试试这些,如果您有任何问题,请告诉我您遇到的问题。