Как разделить объедененные ячейки в excel с помощью python
Пишу проект 'Рассылка расписания' и столкнулся с проблемой, что в excel файле расписания есть объедененные ячейки (это обозначает, что урок спаренный), что не очень хорошо сказывается на правильности работы программы.
Так вот: Есть расписание
Если для 11а расписание присылается, то для 11б присылается такое:
Использую библиотеку openpyxl
. Можно ли как то разделить ячейки, чтобы значение оставалось и в первом, и во втором столбце?
Ответы (2 шт):
Я думаю можно сделать условие:
Если значение в ечейке равно
Окно
, то мы заменяем его на значение из11а
Этот скрипт разъединяет все спаренные ячейки, горизонтально и вертикально, и заполняет их существующими значениями (поскольку понять как разделять их содержимое невозможно):
import os
import openpyxl
print("-" * 50 + "\nРазъединение ячеек в Excel:\n" + "-" * 50)
file = 'ваш_файл.xlsx'
new_file = 'ваш_файл_разъединённый.xlsx'
# Открываем существующий файл Excel:
workbook = openpyxl.load_workbook(file)
sheet = workbook.active
# Создаём список объединенных ячеек:
merged_cells = list(sheet.merged_cells.ranges)
# Проходим по всем объединённым ячейкам:
for merged_cell in merged_cells:
# Разъединяем ячейки:
sheet.unmerge_cells(str(merged_cell))
# Копируем значение в каждую ячейку:
top_left_cell = sheet.cell(row=merged_cell.min_row, column=merged_cell.min_col)
for row in range(merged_cell.min_row, merged_cell.max_row + 1):
for col in range(merged_cell.min_col, merged_cell.max_col + 1):
sheet.cell(row=row, column=col).value = top_left_cell.value
# Сохраняем изменения:
workbook.save(new_file)
print("Результат обработки сохранён в:", new_file)
print("Нажмите любую клавишу для продолжения...")
os.system("pause > nul" if os.name == "nt" else "read > /dev/null")