我有一个 LibreOffice 3 电子表格(在 Ubuntu 11.04 上),其中有一列包含数百个超链接,这些超链接仅显示为“链接”。
我需要将它们转换为纯文本,或者更糟糕的是显示超链接而不是文本“链接”的超链接。是否有一个函数可以做到这一点,或者可能有一个方法可以在整个电子表格中做到这一点?
我有一个 LibreOffice 3 电子表格(在 Ubuntu 11.04 上),其中有一列包含数百个超链接,这些超链接仅显示为“链接”。
我需要将它们转换为纯文本,或者更糟糕的是显示超链接而不是文本“链接”的超链接。是否有一个函数可以做到这一点,或者可能有一个方法可以在整个电子表格中做到这一点?
您可以使用宏。
我唯一测试过的是这个。
如果您没有使用宏的经验,以下是所涉及的步骤:
ALT + F11
打开您的宏管理器。现在,您可以访问一个名为“CELL_URL”的宏,您可以按如下方式使用它:
假设您的链接从“SHEET 1”上的“CELL A1”开始,我建议您转到新工作表,并在第一个单元格中输入:=CELL_URL("SHEET 1",ROW(),COLUMN())
。然后,您可以根据数据的维度拖动该公式。
或者,另一个示例,假设您有一个包含 20 个链接的列,从“SHEET 1”上的“CELL B5”开始,并且您希望 URL 位于它旁边的列中(因此,从“CELL C5 "),在“CELL C5”中,输入公式如下:=CELL_URL("SHEET 1", ROW(), COLUMN()-1)
. 注意 -1
. 这告诉函数从比当前位置少一列的单元格中提取 URL。然后,将公式从“CELL C5”拖到“CELL C24”,链接结束。
更新:
该 URL 似乎无法解析。幸运的是,有 WayBack 机器:http ://web.archive.org/web/20120713222701/http://www.oooforum.org/forum/viewtopic.phtml?t=32909
我还将宏作为要点发布:https ://gist.github.com/mrdwab/14c9e81dfbc867351bd3
CELL_URL()
正如评论中所指出的,您在使用该功能时可能需要将“SHEET 1”更改为“Sheet1” 。
这是另一种方式,使用 Unix 命令行工具 - 完全绕过 Calc。
首先,解压缩您拥有的 .ods 作为 zip;例子:
$ cd /tmp
$ mkdir my_ods_unpack
$ cd my_ods_unpack
$ unzip /path/to/my.ods
解压后,你可以查看./content.xml
,发现所有的 URL 都用双引号括起来"
;因此我们可以编写以下grep
行:
$ grep -ro 'http[^"]*' .
./meta.xml:http://www.w3.org/1999/xlink
./meta.xml:http://purl.org/dc/elements/1.1/
./meta.xml:http://openoffice.org/2004/office
...
...一旦到达./content.xml
,您应该开始看到已放入文档中的 URL。
如果您想将 URL 嵌入到 office calc 中的单元格中,您可以按如下方式访问它:
cell1.TextFields.getByIndex(0).URL
cell1 是使用 UNO 获得的单元格对象。