Изменить содержимое определенной ячейки в нескольких файлах xlsx в python - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь написать скрипт на python, который изменяет / изменяет содержимое ячейки определенного листа во всех .xlsx листах, существующих в текущем рабочем каталоге.

Форма листа ввсе .xlsx выглядит примерно так:

column1 column 2

value1.1 value2.1

value1.2 value2.2

.

.

value1.n value2.n

.

.

Извинения за неправильное форматирование, я не знаю, какотформатируйте так, чтобы значения выглядели как ячейки, поэтому представьте вышеизложенное как 2 столбца листа.

Теперь мне нужно открыть каждый файл .xlsx, открыть первый лист: «sheet», найтиvalue1.n, который присутствует на каждом листе и измените value2.n на value2.nm, где value2.nm - измененное значение.

В конечном счете, я хочу, чтобы лист выглядел следующим образом:

column1 column 2

value1.1 value2.1

value1.2 value2.2

.

.

value1.n value2.nm

.

.

, в то время как все остальныеent остается нетронутым.

У меня уже есть код, который может получить доступ к первому листу и найти value1.n, который я ищу, но я не могу продолжить.

Любая помощь поэто приветствуется.

import openpyxl
count = 0
for f in files:
    if f[-4:] == "xlsx":
        book = openpyxl.load_workbook(f)
        sheet = book.active
        for row in sheet.iter_rows(values_only=True):
            for data in row:
                if data == "value1.n":
                    count = count + 1
                    print(data)
                    print(count)

операторы печати предназначены только для меня, чтобы отслеживать.

Я использую Windows 10 и пишу код на локально установленном ноутбуке Jupyter, который использует ноутбук Python3.

1 Ответ

1 голос
/ 24 сентября 2019
import openpyxl
count = 0
for f in files:
    if f[-4:] == "xlsx":
        book = openpyxl.load_workbook(f)
        sheet = book.active
        for idx, row in enumerate(sheet.iter_rows()):
            if row[0].value == "value1.n":
                row[1].value = count + 1
                count = count + 1
        book.save(f)
...