使用 Python 在 XLSXWriter 中创建超链接

Create hyperlinks in XLSXWriter using Python

我正在尝试在最终使用 xlswriter 导出的数据集中创建 hyperlinks,并使用我在 python 脚本中创建的函数。然而,产生的输出并不像预期的那样。

=HYPERLINK() in Excel 有两个参数。这些是目的地 URL 和锚文本。这是我试图在 Python 中使用 XLSXWriter 生成的内容,以便在导入时,Excel 能够将列读取为 link.

参见下面的示例。

#create exmaple df
df = pd.DataFrame({'urls': ['https://www.google.com', 'https://www.youtube.com', 'https://www.twitter.com','https://www.reddit.com']})

#create function
def make_hyperlink(x):
for urls in df['urls']:
    return '=HYPERLINK(' + urls, "Site Link"

#apply function
df['hyperlink'] = df['urls'].apply(lambda x: make_hyperlink(x))

#view df 
df

输出:

    urls    hyperlink
0   https://www.google.com  (=HYPERLINK(https://www.google.com, Site Link)
1   https://www.youtube.com (=HYPERLINK(https://www.google.com, Site Link)
2   https://www.twitter.com (=HYPERLINK(https://www.google.com, Site Link)
3   https://www.reddit.com  (=HYPERLINK(https://www.google.com, Site Link)

我希望输出以 'Site Link' 作为锚文本显示每个 URL,所以我不确定为什么该功能仅适用于第一个 URL 但是四次。

感谢指导。

您的 make_hyperlink() 函数及其应用方式存在一些问题。这是更正后的版本:

import pandas as pd

#create exmaple df
df = pd.DataFrame({'urls': ['https://www.google.com', 'https://www.youtube.com',
                            'https://www.twitter.com','https://www.reddit.com']})

#create function
def make_hyperlink(url):
    return '=HYPERLINK("%s", "Site Link")' % url


#apply function
df['hyperlink'] = df['urls'].apply(make_hyperlink)

#view df
print(df)

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')

# Close the Pandas Excel writer and output the Excel file.
writer.save()

输出: