【问题标题】:how do I process an excel file with hyperlink/url in pandas?如何在 pandas 中处理带有超链接/url 的 excel 文件?
【发布时间】:2021-01-25 17:58:54
【问题描述】:

我有一个 excel 文件,其中有一列填充了超链接,我使用 df = pd.read_excel() 读取它,然后过滤它并使用 df.to_excel() 将其保存到一个新的 excel 文件中。

问题是我现在丢失了可点击的超链接,而是只有文本(不是超链接)

我可以为此使用熊猫吗?还是我应该使用其他库?

【问题讨论】:

  • 如果您查看我的回答的第二部分,我认为这些链接将有助于阅读和编写超链接,但有些代码听起来可能已被弃用,但与超链接相关的代码则不然,因此,如果您可以修复这些答案中已弃用的代码(阅读 cmets),那么您可能无需手动创建“超链接列表”或“超链接字典”即可做到这一点。
  • @DavidErickson 好的,感谢您的提示,我会尝试使用字典,因为这似乎是更直接的选择。

标签: python python-3.x excel pandas hyperlink


【解决方案1】:

您可以使用import xlsxwriter 库添加超链接。说到超链接,示例here 显示了一些示例,例如:

worksheet.write_url('A5', 'http://www.python.org/', tip='Click here')

但是,如果您不想为每个单元格手动编写一行代码,那么如果您有所有超链接的列表,则可以循环并动态添加超链接。

hyperlinks = ['a.com', 'b.com', 'c.com' ... etc.]

for i in range(1, len(hyperlinks)):
    worksheet.write_url(f'A{i}', hyperlinks[i-1], tip=df['column string'][i-1])

您的超链接显然必须在list 中以正确的顺序排列,或者您可以创建一个dictionary,使文本和超链接成为键值对并使用.map 将超链接带入您的数据框作为一列。然后您可以对值进行排序并将超链接发送到带有hyperlinks = df['hyperlink'].to_list() 的列表。然后你就可以运行for循环了。

但是,我认为您必须先创建一个列表或字典。


此外,请查看此答案以使用openpyxl 阅读带有超链接的日期:

Pandas read_excel with Hyperlink

而且,这个用于使用pandas 编写带有超链接的数据:

add hyperlink to excel sheet created by pandas dataframe to_excel method

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 2016-05-21
    • 1970-01-01
    • 2021-12-09
    • 2020-12-28
    • 1970-01-01
    • 2017-09-24
    • 2018-06-23
    相关资源
    最近更新 更多