You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas读取含超链接的Excel文件?求可行解决方案

问题:Pandas生成含HYPERLINK的Excel读取后显示0的解决办法

我曾用Pandas DataFrame生成包含可点击URL的Excel表格,代码如下:

import pandas as pd
df = pd.DataFrame({'link':['=HYPERLINK("https://ar.wikipedia.org/wiki/","wikipidia")',
                           '=HYPERLINK("https://www.google.com", "google")']})
df.to_excel('links.xlsx')

但用pandas.read_excel读取该文件时:

import pandas as pd
excelDf=pd.read_excel('links.xlsx')
print(excelDf)

得到的DataFrame中link列全为0,想知道如何读取该文件,或者有没有其他用Pandas创建含可点击链接且可读的Excel表格的方法?


一、读取现有文件的方法

出现全0的原因是read_excel默认会计算Excel公式的结果,而HYPERLINK公式在未触发Excel交互时返回值为0。要读取公式本身而非计算结果,需指定openpyxl引擎并设置data_only=False(openpyxl默认data_only=True,会读取计算后的值):

import pandas as pd
excelDf = pd.read_excel('links.xlsx', engine='openpyxl', data_only=False)
print(excelDf)

执行后就能获取到原始的HYPERLINK公式文本。

二、生成可点击且易读取的Excel的优化方案

直接写入公式的方式在读取时容易出现异常,推荐用xlsxwriter引擎,同时保留原始URL和显示文本信息,生成的Excel既保留可点击链接,又方便后续读取:

  1. 构造包含显示文本和原始URL的DataFrame:
import pandas as pd

df = pd.DataFrame({
    '显示文本': ['wikipidia', 'google'],
    'URL': ['https://ar.wikipedia.org/wiki/', 'https://www.google.com']
})
  1. 使用xlsxwriter写入并添加超链接:
writer = pd.ExcelWriter('links_better.xlsx', engine='xlsxwriter')
df.to_excel(writer, index=False, sheet_name='Sheet1')

workbook = writer.book
worksheet = writer.sheets['Sheet1']

# 定义超链接格式(蓝色下划线,模拟默认超链接样式)
link_format = workbook.add_format({'color': 'blue', 'underline': 1})

# 遍历行,为单元格添加可点击链接
for row_num in range(1, len(df) + 1):
    text = df.loc[row_num - 1, '显示文本']
    url = df.loc[row_num - 1, 'URL']
    # 将链接写入第三列(可根据需求调整列索引)
    worksheet.write_url(row_num, 2, url, link_format, text)

writer.close()

这种方式生成的Excel中,第三列是可点击的超链接,同时前两列保留了原始的显示文本和URL,后续读取时直接读取URL列即可获取原始链接,无需处理公式问题。


内容的提问来源于stack exchange,提问作者Meirna Kamal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 14:03:40