将超链接添加到由pandas dataframe to_excel方法创建的Excel工作表

时间:2015-08-04 21:56:10

标签: python excel pandas hyperlink

我已使用pandasdf.to_excel DataFrame转换为Excel工作表。

现在,我想在一列中添加超值的超链接。换句话说,当客户看到我的Excel工作表时,他就可以点击一个单元格并打开一个网页(取决于此单元格中的值)。

5 个答案:

答案 0 :(得分:5)

您可以使用HYPERLINK功能

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

答案 1 :(得分:2)

在@ guillaume-jacquenot的方法基础上,我们可以使用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")

>

scp -i -r

答案 2 :(得分:0)

从@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)

答案 3 :(得分:0)

您可以使用:

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))

答案 4 :(得分:0)

我当时是从excel文件中生成文本文件,并想将生成的.txt文件的名称链接到数据框中现有的特定列。

我试图将存储生成的.txt文件的本地驱动器目录推送到相应的“文件名”。这样,在单击文件名时,它将打开.txt文件。

The dataframe

rancheck_DF = pd.read_excel(excel_file, delim_whitespace = True, encoding = 'utf-8')

for index_df in range(len(rancheck_DF)):

    Desc = rancheck_DF.loc[index_df,'Description Text']

    MainFile = rancheck_DF.loc[index_df,'File Name']

    fileName = r'.\Documents\TestF\TestF_{}.txt'.format(index_df)

    with open(fileName, 'w', encoding='utf-8') as txtfile:
        txtfile.write(Desc)

    rancheck_DF.loc[index_df,'File Name'] = '=HYPERLINK("{}","{}")'.format(fileName,MainFile)

rancheck_DF.to_excel('./damn.xlsx', index=None)