Добавление гиперссылок в некоторые ячейки openpyxl
Мне нужно создать excel с итоговыми результатами. Результаты включены в список. Некоторые из элементов - это значения и некоторые ссылки.
Мне удалось создать excel с правильным форматом, но не генерировать гиперссылку в некоторых ячейках
Моя попытка:
из openpyxl import Workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font, Fill
from openpyxl.cell import get_column_letter
def summaryMCP(self,result):
c1=Column('Name',[result[0]])
c2=Column('R2 check',[result[1]])
c3=Column('Dir Diff.',[result[2]])
c4=Column('CHI2 Sm-Sc',[result[3]])#Lets say this one is a hyperlink to one image png
c5=Column('Rose Sm-Sc',[result[4]])
s=Sheet("MCP main results", [c1,c2,c3,c4,c5]
excelMCP([s],"/results.xlsx")
def excelMCP(self, sheets,foname):
wb = Workbook()
ws = wb.active
#from here format options (a bit long)
Мой вопрос: могу ли я определить, что значение является гиперссылкой при определении столбца в def summaryMCP, а затем в excelMCP формат ссылки? А в случае, как? Я не мог найти его до сих пор
Ответы
Ответ 1
Если вы хотите использовать встроенную в Excel функцию гиперссылки напрямую, вы можете использовать следующее для форматирования в виде ссылки:
'=HYPERLINK("{}", "{}")'.format(link, "Link Name")
например ws.cell(row=1, column=1).value = '=HYPERLINK("{}", "{}")'.format(link, "Link Name")
Ответ 2
Попробуйте следующее:
sheet['A1'].hyperlink = "http://stackoverflow.com"
sheet['A1'].value="StackOverflow"
В моей попытке это не добавляет форматирование, которое Excel помещает с гиперссылкой, но содержимое ячейки больше похоже на ячейку гиперссылки Excel, чем я получаю с тегом HYPERLINK.
Ответ 3
Это работает для меня:
wbook.active['A8'].hyperlink = "http://www.espn.com"
wbook.active['A8'].value = 'ESPN'
wbook.actibe['A8'].style = "Hyperlink"
Ответ 4
Это сработало для меня.
sheet.column_dimensions["A"].width = 30
sheet.cell(row=1, column=1).hyperlink = "http://www.espn.com"
book.save('links.xlsx')