添加超链接到由pandas dataframe to_excel方法创build的excel表单

我已经使用df.to_excel将pandas DataFrame转换为Excel工作表。

现在,我想添加超链接到一列中的值。 换句话说,当客户看到我的Excel表单时,他将能够点击一个单元格并调出一个网页(取决于该单元格中的值)。

您可以使用HYPERLINKfunction

 import pandas as pd df = pd.DataFrame({'link':['=HYPERLINK("http://www.someurl.com", "some website")']}) df.to_excel('test.xlsx') 

从@ maxymoo的回答,这里是一个完整的例子

 import pandas as pd df = pd.DataFrame({'Year': [2000, 2001, 2002 , 2003]}) df['link'] = '-' df.set_value(0, 'link', '=HYPERLINK("https://en.wikipedia.org/wiki/2000", 2000)') df.set_value(1, 'link', '=HYPERLINK("https://en.wikipedia.org/wiki/2001", 2001)') df.set_value(2, 'link', '=HYPERLINK("https://en.wikipedia.org/wiki/2002", 2002)') df.set_value(3, 'link', '=HYPERLINK("https://en.wikipedia.org/wiki/2003", 2003)') df.to_excel('test.xlsx', index = False) 

您可以使用:

 df = pd.DataFrame(list(range(5)), columns=['a']) df['a'] = df['a'].apply(lambda x: '<a href="http://youtube.com/{0}">link</a>'.format(x)) HTML(df.to_html(escape=False)) 

build立在@ guillaume-jacquenot的方法上,我们可以使用apply将它应用到整个系列。

 df = pd.DataFrame({'Year': [2000, 2001, 2002 , 2003]}) 

为了清洁,我写了一个帮手方法。

 def make_hyperlink(value): url = "https://custom.url/{}" return '=HYPERLINK("%s", "%s")' % (url.format(value), value) 

然后, apply其应用于系列:

 df['hyperlink'] = df['Year'].apply(lambda x: make_hyperlink(x)) 

>

  Year hyperlink 0 2000 =HYPERLINK("https://custom.url/2000", "2000") 1 2001 =HYPERLINK("https://custom.url/2001", "2001") 2 2002 =HYPERLINK("https://custom.url/2002", "2002") 3 2003 =HYPERLINK("https://custom.url/2003", "2003")