我刚接触Python,尤其是在Excel中使用Python的时候。我需要编写代码来搜索字符串“Mac”,“Asus”,“AlienWare”,“Sony”,或“Gigabit”,在一个更长的字符串中搜索A列的每个单元格,根据它在A列的单元格的整个条目中找到的这些字符串中的哪些,它应该将这5个字符串中的一个写入到C列的单元格的相应行。否则,如果它没有找到五个中的任何一个,它会将“Other”写到列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)
发布于 2018-06-12 05:41:08
您还没有尝试编写任何代码来解决该问题。您可能希望首先让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"
试一试,如果你有任何问题,请告诉我你在哪里卡住了。
发布于 2018-06-12 05:36:00
我没怎么用过openpyxl,但听起来你是想做一个简单的字符串搜索。
您可以使用以下命令访问单个单元
cell1.internal_value
然后,if/else语句将如下所示
if "HP" in str(cell1.internal_value):
数据可以直接分配给单元格,因此您可以
ws['C' + str(i)] = "HP"
您可以对单元格中的所有数据执行此操作
https://stackoverflow.com/questions/50806165
复制相似问题