Создать ссылку на определенное место в документе excel

Рейтинг: 0Ответов: 1Опубликовано: 06.02.2023

Имеется excel-файл с большим количеством листов, на каждом из которых есть таблица (датафрейм). На одном из них располагается информация о связи названия таблицы и листа (оглавление).

{1: 'Собаки',
 2: 'Кошки',
 3: 'Птицы',
 4: 'Насекомые',
 5: 'Рыбы'}

То есть на листе под названием "1" находится таблица с данными про собак и тд.

Можно ли как-то средствами python создать такой инструмент, с помощью которого нажав на название листа я автоматически перейду на этот лист (насколько я знаю в самом excel это можно сделать, но хотелось бы автоматизировать этот процесс)

Ответы

▲ 1Принят

Через openpyxl:

  • Создал документ
  • Создал второй лист
  • На первом листе добавил в ячейку гиперссылку на второй лист и ячейку K20

Пример:

import openpyxl

wb = openpyxl.Workbook()

sheet1 = wb.active

sheet2 = wb.create_sheet(title='Лист 2')

cell = sheet1.cell(row=1, column=1)
cell.hyperlink = f"#'{sheet2.title}'!K20"
cell.value = "Go"

wb.save('excel.xlsx')

Для уже существующего файла:

import openpyxl


filename = 'excel.xlsx'

wb = openpyxl.load_workbook(filename=filename)

sheet1 = wb['Sheet']
sheet2 = wb['Лист 2']

cell = sheet1.cell(row=5, column=1)
cell.hyperlink = f"#'{sheet2.title}'!B20"
cell.value = "Go2"

wb.save(filename)

UPD. Еще можно создавать ссылки через класс Hyperlink:

from openpyxl.worksheet.hyperlink import Hyperlink
...

cell = sheet1.cell(row=2, column=1)
cell.hyperlink = Hyperlink(
    location=f"'{sheet2.title}'!K20",
    ref='',
)
cell.value = "Go 2"
cell.style = "Hyperlink"