Здравствуйте, есть задача найти все объединенные ячейки, разъединить их, а затем в диапазон их объединения скопировать значение.
Пользуюсь библиотекой Openpyxl, есть худо-бедно работающий скрипт. Мне он не нравится, как я могу его изменить?
import openpyxl
book = openpyxl.open(f"{SCHEDULE_DIR}/{file_name}", data_only=True, read_only=False)
sheet = book.active
def prepare_sheet(sheet) -> NoReturn:
merged_cells = list(map(str, sheet.merged_cells.ranges)) # Получаю список объединенных диапазонов
# Разъединяю объединенные ячейки и дублирую запись
for item in merged_cells:
sheet.unmerge_cells(item)
merged_cells_range = item.split(":")
if merged_cells_range[0][0] == merged_cells_range[1][0]:
letter = item.split(":").pop(0)[0] # Символ столбца диапазона
start = int(item.split(":").pop(0)[1:]) # Начало диапазона
end = int(item.split(":").pop()[1:]) # Конец диапазона
copy_cell = sheet[(letter + str(start))].value
for n in range(start, end + 1):
cell = letter + str(n)
sheet[cell].value = copy_cell