簡體   English   中英

python 和 openpyxl:如何替換 excel 表上新出現的日期?

[英]python and openpyxl : how to replace new occurence of a date on excel sheet?

我有一個 excel 表,其中包含兩列(A 和 B)上的數據,如下所示:

一個 (供參考)
蘋果 (“情侶 1”)
番茄 蘿卜 (“情侶 2”)
香蕉 獼猴桃 (“情侶 3”)
蘋果 (“情侶1”新出現)
番茄 蘿卜 (《情侶2》新登場)
沙拉 茄子 (“情侶 4”)

我想用 à 0(零)替換同一“夫婦”的每一個新出現,就像這樣:

一個 (供參考)
蘋果 (“情侶 1”)
番茄 蘿卜 (“情侶 2”)
香蕉 獼猴桃 (“情侶 3”)
0 0
0 0
沙拉 茄子 (“情侶 4”)

我教過這樣一個簡單的代碼就可以了:


import openpyxl
from openpyxl import *
import numpy
from numpy import *

wb = load_workbook("Desktop/programme/wb.xlsx")

ws = wb["Sheet"]

stop_row = ws.max_row + 1

for n1 in range(1,stop_row) :

    for n2 in range(2,stop_row) :

        item_a = ws.cell(row=n1, column=1).value
        item_b = ws.cell(row=n1, column=2).value

        item_1 = ws.cell(row=n2, column=1).value
        item_2 = ws.cell(row=n2, column=2).value

        if (item_a == item_1 and item_b == item_2) or (item_a == item_2 and item_b == item_1) :

            ws.cell(row=n2, column=1).value = 0
            ws.cell(row=n2, column=2).value = 0

但我得到的是:

一個 (供參考)
蘋果 (“情侶 1”)
0 0 (“情侶 2”)
0 0 (“情侶 3”)
0 0 (“情侶1”新出現)
0 0 (《情侶2》新登場)
0 0 (“情侶 4”)

知道為什么嗎?

謝謝

第一次迭代,n1 = 1 和 n2 = 1。值item_1item_a將與該設置相同,因為它們指向同一個單元格。 item_2item_b相同。 也許你的第二個循環應該是range(n1 + 1, stop_row) 如果 n1 + 1 大於 stop_row,請不要擔心; 它只是不會計算任何東西而不是循環。

另外,請注意,如果這樣做,則必須從 0 開始 n1,否則將永遠不會考慮第一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM