Python,Openpyxl,在Excel列中搜索子字符串,添加到另一列

2024-09-28 20:54:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在excel电子表格中有三列。我正试图用OpenPyXL2.4.7、Excel 2016和Pycharm 2016.3.2实现我的目标。在

|    Type    |             Name            |            Fits            |             Column D              |
|------------|-----------------------------|----------------------------|-----------------------------------|
| Universal  | Product A: Universal Fit    |                            | Blank                             |
| Automation | Product B: Chevrolet, Ford  | Chevrolet, GMC, Cadillac   | Chevrolet, Ford, GMC, Cadillac    |
| Automation | Product C: Chevrolet, Honda | Chevrolet, Cadillac, Honda | Chevrolet, Honda, Cadillac, Honda |
| Universal  | Product D: Universal Fit    |                            | Blank                             |

我试图在“Name”和“Fits”列中搜索汽车名称,然后将它们添加到D列,但我完全不知所措。我一直在努力:

^{pr2}$

超级新的python所以只是尝试通过一步一步的工作,任何帮助将不胜感激!在


Tags: nameproductexceluniversalfit电子表格automationblank
1条回答
网友
1楼 · 发布于 2024-09-28 20:54:15

考虑以下示例:

# Use a set() for your Keywords
COLUMN_D_SET = set(['Chevrolet','GMC', 'Cadillac', 'Honda'])

maxRow = sheet.max_row + 1
for rowNum in range(1, maxRow):
    type = sheet.cell(row=rowNum, column=1).value
    # Concat Values from Column Name and Fits
    name= sheet.cell(row=rowNum, column=2).value
    name = name+' '+sheet.cell(row=rowNum, column=3).value

    # Define a empty list for the Column D Result
    value_D = []
    if type == "Automation":
        # Split by Blank
        for word1 in name.split(' '):
            # Split by ','
            for word in word1.split(','):
                # Match if word in Set of Keywords 
                # and not already in list of value_D
                if word in COLUMN_D_SET and not word in value_D:
                    value_D.append(word)

    # Assing the aggreated list of words or a Empty list to Column D
    sheet.cell(row=rowNum, column=4).value = ', '.join(value_D)

用Python:3.4.2测试

相关问题 更多 >