如何使 XLRD 读取 XLSX 单元格中的超链接?

Posted

技术标签:

【中文标题】如何使 XLRD 读取 XLSX 单元格中的超链接?【英文标题】:How to make XLRD read hyperlinks in XLSX cells? 【发布时间】:2016-01-13 23:50:46 【问题描述】:

这不是重复的,尽管该问题已在 2011Getting a hyperlink URL from an Excel document、2013 Extracting Hyperlinks From Excel (.xlsx) with Python 和 2014 Getting the URL from Excel Sheet Hyper links in Python with xlrd 的论坛中提出;仍然没有答案。 在深入了解 xlrd 模块之后,似乎 Data_sheet.hyperlink_map.get((row, col)) 项出现故障,因为“xlrd 无法在没有formatting_info 的情况下读取超链接,xlsx 目前不支持”每个@alecxe 在@987654324 @。 问题:有没有人在从存储在 excel 文件中的超链接中提取 URL 方面取得了进展。比如说,在所有客户数据中,有一列超链接。我正在玩弄将 excel 表作为 html 页面转储并按照通常的抓取(本地驱动器上的文件)进行的想法。但这不是生产解决方案。补充:是否有任何其他模块可以从超链接单元上的 .cell(row,col).value() 调用中提取 url。机械化有解决办法吗?非常感谢。

【问题讨论】:

也很想认识自己。 【参考方案1】:

我能够阅读并使用超链接复制带有openpyxl 的文件。它有一个cell_obj.hyperlinkcell_obj.hyperlink.target,它们将获取链接值。我列出了包含超链接的单元格行 col 值,然后将它们附加到列表中,然后循环遍历列表以移动链接的文件。

【讨论】:

【参考方案2】:

我在尝试从 xlsx 文件的单元格中获取超链接时遇到了同样的问题。我想出的解决方法是将 Excel 工作表简单地转换为 xls 格式,从中我可以毫无问题地获取超链接,一旦完成编辑,我将其格式化回原始 xlsx 文件。

我不知道这是否适合您的特定需求,或者格式的更改是否意味着我不知道的一些后果,但我认为值得一试。

【讨论】:

以上是关于如何使 XLRD 读取 XLSX 单元格中的超链接?的主要内容,如果未能解决你的问题,请参考以下文章

python的xlrd模块,cell_value方法读取单元格中的整数,返回却是float型?

OleDbDataReader 看不到单元格中的数据 (.xlsx)

Python读取具有一些背景颜色的Excel工作表(xlsx)中的单元格

python使用xlrd读取合并单元格

将单元格链接到多个单元格不包括Google表格中的中间范围

如何使用开放的 XML C# 从 .xlsx 获取单元格中显示的值