Удалить тильды и символы из файла Excel в python - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть скрипт, в котором я автоматически заполняю файл Excel данными из другого файла. Единственная проблема заключается в том, что текст в столбцах содержит тильды, поэтому результат не указан. Есть ли способ удалить тильды и символы в python?
Например, 12345 ~ R3 ~ A8987 ~ AB C, я хочу удалить тильды, чтобы найти и удалить их AB C в конце

from openpyxl import load_workbook
wb = load_workbook(filename = 'file1.xlsx')
wb1 = load_workbook(filename = 'file2.xlsx')
ws = wb['Sheet1']
ws1 = wb1['Sheet1']
for row in ws1 ['AW4:AW7']:
    for cell in row:
        cell.value = "=VLOOKUP(C{0}, 'file1.xlsx'!$C:$G, 5, FALSE)".format(cell.row)
for row in ws1 ['AX4:AX7']:
    for cell in row:
        cell.value = "=VLOOKUP(D{0}, 'file1.xlsx'!$D:$H, 5, FALSE)".format(cell.row)        
wb1.save('file2.xlsx')

ОБНОВЛЕНИЕ: Я получил этот код для замены тильд и AB C, но он печатает только результаты (так что я знаю код работает), но на самом деле он не сохранит файл Excel.

for row in ws1 ['C2:C7']:
for cell in row:
    remove_til = cell.value.replace(chr(126)," ").replace("ABC","")
print(remove_til)
wb1.save('REQ20200113_C.xlsx')

1 Ответ

0 голосов
/ 06 февраля 2020

Вы можете использовать функцию замены, которая заменяет целевую строку строкой замены:

 new_string = old_string.replace(target, replacement)

Таким образом, вы добавите ее, когда прочитаете значение определенной ячейки. Просто замените old_string значением, которое вы читаете из ячейки, и этот код должен работать.

old_string = "12345~R3~A8987~ABC"
target = ["~", "ABC"]
replacement = [" ", ""]
tmp_string = old_string.replace(target[0],replacement[0])
new_string = tmp_string.replace(target[1],replacement[1])
print(new_string)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...