使用 python 处理 excel 个电子表格

manipulating excel spreadsheets with python

我是 Python 的新手,尤其是与 Excel 一起使用时。我需要编写代码以在 A 列中每个单元格的较长字符串中搜索字符串“Mac”、“Asus”、“AlienWare”、“Sony”或“Gigabit”。具体取决于其中的哪一个它在 A 列单元格的整个条目中找到的字符串,它应该将这 5 个字符串之一写入 C 列单元格中的相应行。否则,如果它没有找到这五个中的任何一个,它会将“其他”写入列 C 中的相应行。例如,如果列 A2 的单元格包含字符串“ProLiant Asus DL980 G7”,则正确的代码将写入“Asus”到 C2 列的单元格。它应该为 A 列中的每个单元格执行此操作,将适当的字符串写入 C 列中的相应单元格。A 列中的每个单元格将具有五个字符串之一 Mac、Asus、AlienWare、Sony 或 Gigabit在里面。如果它不包含这些字符串之一,我希望在第 3 列的相应单元格中写入字符串“Other”。到目前为止,这是我拥有的代码(一点也不多):

import openpyxl
wb = openpyxl.load_workbook(path)
sheet = wb.active
    for i in range (sheet.max_row):
    cell1 = sheet.cell (row = i, column = 1)
    cell2 = sheet.cell (row = I, column = 3)

# missing code here

wb.save(path)

我对 openpyxl 的工作不多,但听起来您正在尝试进行简单的字符串搜索。

您可以使用

访问单个单元格
cell1.internal_value

那么,您的 if/else 语句将类似于

if "HP" in str(cell1.internal_value):

可以将数据直接分配给单元格,这样您就可以拥有

ws['C' + str(i)] = "HP"

您可以对单元格中的所有数据执行此操作

您还没有尝试编写任何代码来解决问题。您可能希望首先让 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"

试试这些,如果您有任何问题,请告诉我您遇到了什么困难。