введите описание изображения здесь

Как заменить каждый СЕГМЕНТ на количество строк ниже СЕГМЕНТА автоматически с помощью python?

-2
Kitaro Asda 2 Мар 2021 в 15:27

1 ответ

Лучший ответ

Этот Код заменит все вхождения слова «СЕГМЕНТ» длиной строк под ним, пока не появится новый «СЕГМЕНТ».

Вам необходимо установить пакет pip openpyxl с pip install openpyxl

from openpyxl import load_workbook
workbook = load_workbook(filename="yourFile.xlsx")

sheet = workbook.active

text = ""

# Iterator for row in sheet
i = 0
for x in sheet:
    i += 1
    # Append to text
    text += str(sheet[f"A{i}"].value) + "\n"


# Iterator
i = -1
# Index of SEGMENT
j = 1
# last index of SEGMENT
k = 0

# All the values which all the SEGMENTS will be replaced through
newVars = []
for x in text.split("SEGMENT"):
    # Increase the itarator
    i += 1
    # Append the length of vars minus 2 (The Segment before and after)
    newVars.append(len(text.split("SEGMENT")[i].split("\n"))-2)

# Remove the first -1
del newVars[0]

# Iterator of rows
i = 0
# Iterator of SEGMENTS
j = 0
for x in sheet:
    i += 1
    if sheet[f"A{i}"].value == "SEGMENT":
        # Replacing the value with !{lenOfRows}
        sheet[f"A{i}"].value = "!" + str(newVars[j])
        # Increeasing the iterator for the SEGMENTS
        j += 1

        

workbook.save(filename="yourFile.xlsx")
print("Everything got replaced")

Этот код можно улучшить, но он должен работать

Заметка

Все должно быть в столбце A в этом файле Excel.

Конечно, вам нужно заменить имена файлов на свои

0
kuso.sama 2 Мар 2021 в 13:33