python 在 excel 用 OpenPyXL 怎么实现以下代码

python 在 excel 用 OpenPyXL 怎么实现以下代码

excel C 列 为以下数据
我创建A,B两 空白列 ,要输入 数值 ,数值格式如下

A1 为 1, A2 继续为1 , A3 继续为1,
若发现** 同行的C列 里面有关键词 'taobao' 则下一个单位格数值 +1, **
待C列无 数据暂停

B1 为1 , B2 为 B1+1, B3 为 B2+1
** 若发现** 同行的C列 里面有关键词 'taobao' 则 下一个单元格 恢复为 1 **
待C列无 数据暂停

    河北省
    河南省
    湖北省
    湖南省
    河南省
    湖南省
    湖南省
    湖南省
    https://taobao.com/2PknNHmn
    湖南省
    湖南省
    湖南省
    湖南省
    湖南省
    湖南省
    湖南省
    湖南省
    湖南省
    湖南省
    湖南省
    https://taobao.com/yGAnqKBx
    河北省
    河南省
    湖北省
    河北省
    河南省
    湖北省
    湖南省
    河南省
    湖南省
    https://taobao.com/m0XnRLLP
    河北省
    河南省
    河北省
    河南省
    湖北省
    河北省
    河南省
    湖北省
    湖南省
    河南省
    湖南省
    https://taobao.com/IbMnZau3
    河北省
    河南省
    湖北省
    河北省
    河南省
    湖北省
    湖南省
    河南省
    湖南省
    湖南省
    河南省
    https://taobao.com/XVxnkH1m
    河北省
    河南省
    湖北省
    河北省
    河南省
    湖北省
    湖南省
    河南省
    湖南省
    湖南省
    河南省

import openpyxl

excel_path = "./taobao.xlsx"
excel_obj = openpyxl.load_workbook(excel_path)
wa = excel_obj.active
a_num, b_num = 1, 1
for i in wa.values:
    if "taobao" in i[-1]:
        wa[f'A{a_num}'] = 2
        wa[f'B{a_num}'] = b_num
        b_num = 1
    else:
        wa[f'A{a_num}'] = 1
        wa[f'B{a_num}'] = b_num
        b_num += 1
    a_num += 1
excel_obj.save(filename=excel_path)

代码如下:


```python
import openpyxl

# 加载 excel 文件
wb = openpyxl.load_workbook("test.xlsx")
sheet = wb.active

# 创建 A, B 两个空白列
sheet.insert_cols(1)
sheet.insert_cols(2)

# 遍历所有行
for row in sheet.iter_rows(min_row=1, max_col=3):
    a_cell = row[0]
    b_cell = row[1]
    c_cell = row[2]

    # 计算 A 列的数值
    if c_cell.value == None or 'taobao' not in c_cell.value:
        a_cell.value = 1
    else:
        a_cell.value = a_cell.value + 1

    # 计算 B 列的数值
    if c_cell.value == None or 'taobao' not in c_cell.value:
        b_cell.value = b_cell.value + 1
    else:
        b_cell.value = 1

# 保存修改
wb.save("test.xlsx")


```


import openpyxl

# 打开 excel 文件
wb = openpyxl.load_workbook('data.xlsx')

# 选择工作表
sheet = wb['Sheet1']

# 记录 A 列和 B 列的当前值
a_value = 1
b_value = 1

# 遍历每一行
for row in range(1, sheet.max_row + 1):
    # 读取 C 列的值
    c_value = sheet.cell(row=row, column=3).value
    
    # 如果 C 列的值为 "taobao"
    if c_value and 'taobao' in c_value:
        a_value += 1
        b_value = 1
    else:
        sheet.cell(row=row, column=1).value = a_value
        sheet.cell(row=row, column=2).value = b_value
        a_value += 1
        b_value += 1

# 保存修改
wb.save('data.xlsx')

该代码打开了一个名为 "data.xlsx" 的 excel 文件,选择了第一个工作表,然后遍历了每一行,并在每一行上执行了该代码中的逻辑。如果发现 C 列的值包含关键字 "taobao",则增加 A 列的值,并将 B 列的值重置为 1。否则,A 列的值增加,B 列的值也增加。最后,保存了修改的 excel 文件。

该回答引用ChatGPT
请参考下面的解决方案,如果有帮助,还请点击 “采纳” 感谢支持!

该代码在每一行中遍历C列,如果发现关键词'taobao',则A列值+1,B列值回到1。否则A列值不变,B列值+1。最后保存工作簿。

import openpyxl

# 读取 Excel 文件
wb = openpyxl.load_workbook('file.xlsx')
sheet = wb['Sheet1']

# 循环遍历每一行
for row in sheet.iter_rows(min_row=1, max_col=3, values_only=True):
    a_value = 1
    b_value = 1

    if 'taobao' in row[2]:
        a_value += 1
        b_value = 1
    else:
        b_value += 1

    sheet.cell(row=row[0].row, column=1).value = a_value
    sheet.cell(row=row[0].row, column=2).value = b_value

# 保存修改到 Excel 文件
wb.save('file.xlsx')