Я хочу заменить даты, представленные в определенном формате, в стандартном формате dd-mm-yyyy
. Фактическая дата, присутствующая в 10-й колонке, будет равна 6.2017
, 7.2017
, где 7
- это месяц, а 2017
- год. Мне просто нужно добавить 1-
перед всеми значениями, а затем я хочу заменить точку, присутствующую в значении даты, с помощью -
(дефис). Таким образом, результат выглядит как 1-6-2017
, 1-7-2017
. Обратите внимание, что столбец может содержать значения none
. В этом случае я хочу пропустить эти значения none.Как заменить значения, присутствующие в конкретном столбце, с помощью openpyxl?
Это то, что я пытался,
from openpyxl import load_workbook
wb = load_workbook(r'E:\foo\Python\stocktable.xlsx')
ws = wb.get_active_sheet()
for rownum in range(2, ws.get_highest_row()):
print(str(ws.cell(row=rownum, column=10).value))
Выход:
6.2017
7.2016
7.2017
6.2017
7.2017
7.2017
2.2016
7.2017
8.2016
None
Так что я добавить Лил немного подправить в коде выше, чтобы работать для моего случая. Но это терпит неудачу.
from openpyxl import load_workbook
wb = load_workbook(r'E:\foo\Python\stocktable.xlsx')
ws = wb.get_active_sheet()
for rownum in range(2, ws.get_highest_row()):
ws.cell(row=rownum, column=10).value = '1-' + str(ws.cell(row=rownum, column=10).value.replace('.', '-')
wb.save(r'E:\foo\Python\stocktable.xlsx')
То есть, он показывает ошибку symtax как,
File "E:\foo\Python\python-excel.py", line 7
wb.save()
^
SyntaxError: invalid syntax
Что вы подразумеваете под словом "it failed"? Какая ошибка? Как насчет ввода 'month, year = ws.cell (row = rownum, column = 10) .value.split (". ")', За которым следует 'ws.cell (row = rownum, column = 10) .value = year + "-" + месяц + "-" + "01" '? – shahkalpesh
@shahkalpesh добавил .... – user197324
Зачем вам нужно снова указывать имя файла при сохранении? Вместо этого попробуйте использовать 'wb.save()'. – shahkalpesh