在某些单元格openpyxl中添加超链接

时间:2016-08-22 10:52:30

标签: python excel hyperlink 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中定义链接的格式吗?万一,怎么样?到目前为止我找不到它

4 个答案:

答案 0 :(得分:7)

如果想直接使用excel的内置超链接功能,可以使用以下格式作为链接格式:

'=HYPERLINK("{}", "{}")'.format(link, "Link Name")

e.g。 ws.cell(row=1, column=1).value = '=HYPERLINK("{}", "{}")'.format(link, "Link Name")

答案 1 :(得分:6)

试试这个:

sheet['A1'].hyperlink = "http://stackoverflow.com"
sheet['A1'].value="StackOverflow"

在我的尝试中,这不会添加Excel与超链接放置的格式,但单元格内容更像Excel超链接单元格,而不是我使用HYPERLINK标记。

答案 2 :(得分:3)

这对我有用:

wbook.active['A8'].hyperlink = "http://www.espn.com"
wbook.active['A8'].value = 'ESPN'
wbook.actibe['A8'].style = "Hyperlink"

答案 3 :(得分:3)

这对我有用。

sheet.column_dimensions["A"].width = 30
sheet.cell(row=1, column=1).hyperlink = "http://www.espn.com"
book.save('links.xlsx')