Копировать всю строку, если столбец «B» содержит значение% (openpyxl) - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь запустить лист Excel и скопировать все строки, где столбец «B» начинается со значения «A-P1» или «A-S1», и скопировать строку в два отдельных файла Excel (один файл для P1 и один для значений S1).

В настоящее время я добился этого с помощью следующего кода:

for row in ws.iter_rows(values_only=True):
    for value in row:
        if str(value).startswith("A-P1"):
            ws2.append(row)
        elif str(value).startswith("A-S1"):
            ws3.append(row)

- это исходный файл Excel, а ws2 и 3 - новый. Это работает, и я могу создать два новых файла Excel с добавленными строками, как и ожидалось. НО; Я также знаю, что есть строки, где столбец B начинается не с A-P1 или A-S1, а с произвольной строкой. Мне также нужно разделить эти строки, но я не могу это сделать. При добавлении

else:
ws.append(row)

все строки исходного листа добавляются несколько раз. Я предполагаю, что это потому, что он проходит по всем ячейкам в строке, и каждая строка имеет 13 столбцов.

Короче говоря, я хотел бы, чтобы "если значение в строке (столбец" B ") начинается с X затем скопируйте всю строку ". Как это возможно?

...