使用 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()
输出:
我正在尝试在最终使用 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()
输出: