Создать ссылку на определенное место в документе excel
Имеется excel-файл с большим количеством листов, на каждом из которых есть таблица (датафрейм). На одном из них располагается информация о связи названия таблицы и листа (оглавление).
{1: 'Собаки',
2: 'Кошки',
3: 'Птицы',
4: 'Насекомые',
5: 'Рыбы'}
То есть на листе под названием "1" находится таблица с данными про собак и тд.
Можно ли как-то средствами python создать такой инструмент, с помощью которого нажав на название листа я автоматически перейду на этот лист (насколько я знаю в самом excel это можно сделать, но хотелось бы автоматизировать этот процесс)
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Через 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"