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

import openpyxl
xlsx = openpyxl.load_workbook('workbook.xlsx')
sheet = xlsx.active

for row in sheet:
    for cell in row:
        for element in cell:
            if ord(element) ==188:
                element.replace(chr(188), '1/4')
xlsx.save('workbook.xlsx')
1
404mind 29 Мар 2021 в 21:58

1 ответ

Лучший ответ

Чтобы устранить ошибку TypeError, необходимо выполнить cell.value.

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

replace_dict = {
    'something': 'replace_with_this',
    'something_else': 'replace_with_this'
}

if cell.value in replace_dict: 
    element = replace_dict[cell.value]

Но это довольно утомительно - определять все, я бы предпочел сделать это, чтобы вернуть строку, в которой были заменены символы, отличные от ASCII:

from unidecode import unidecode
def replace_non_ascii(string):
    return unidecode(string) 

В будущем, когда вы зададите вопрос о StackOverflow, обязательно укажите свои ошибки, вам будет легче помочь.

0
Coco 29 Мар 2021 в 20:52