【发布时间】:2022-01-14 03:33:31
【问题描述】:
我有一个 LibreOffice 3 电子表格(在 Ubuntu 11.04 上),其中有一列包含数百个超链接,这些超链接仅显示为“链接”。
我需要将它们转换为纯文本,或者更糟糕的是显示超链接而不是文本“链接”的超链接。是否有一个函数可以做到这一点,或者可能有一个方法可以在整个电子表格中做到这一点?
【问题讨论】:
标签: libreoffice-calc
我有一个 LibreOffice 3 电子表格(在 Ubuntu 11.04 上),其中有一列包含数百个超链接,这些超链接仅显示为“链接”。
我需要将它们转换为纯文本,或者更糟糕的是显示超链接而不是文本“链接”的超链接。是否有一个函数可以做到这一点,或者可能有一个方法可以在整个电子表格中做到这一点?
【问题讨论】:
标签: libreoffice-calc
您可以使用宏。
我测试过的唯一一个is this one。
如果您没有使用宏的经验,以下是所涉及的步骤:
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
我还将宏作为 Gist 发布:https://gist.github.com/mrdwab/14c9e81dfbc867351bd3
如 cmets 中所述,您可能需要在使用 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得到的cell对象。
【讨论】: