如何编辑 Libre Office Calc 中的列以将所有 URL 设置为可点击链接?

如何编辑 Libre Office Calc 中的列以将所有 URL 设置为可点击链接?

我有一列有很多 URL,其中一些不可点击(如蓝色),我需要逐个选择,然后按 ctrl+x、ctrl+v,然后按 Enter 将 URL 作为文本转换为 HTTP 链接。

这很烦人,我有大量的 URL,我确信存在某种东西可以将它们全部呈现为可点击的链接。

任何想法 ?

答案1

这是 LibreOffice Calc 的基本宏,用于在选定的 1 列工作表单元格范围内创建可点击的 URL 字符串链接。它会跳过任何空白、数字或日期时间单元格,但假定每个文本单元格都包含一个有效的 URL。如果选择了多列或第一行中有空白单元格,则为避免意外激活,将通过消息框中止。运行两次不会造成任何损害。按 Ctrl-Z 一次撤消 1 个单元格的效果。

如果复制到 (工具 | 宏 | 组织...) 下的模块My Macros,它应该可用于所有 Calc 表。

感谢 Andrew Pitonyak 的贡献OOo 宏 文件的要点被剪断了。

Sub ActivateUrlsAsLinks
    Const boxtitle = "URL activator"
    Dim msg As String
    Dim oSels As Object, cell As Object
    oSels = ThisComponent.getCurrentController().getSelection()
    cell = oSels.getCellByPosition(0, 0)

    If oSels.Columns.getCount <> 1 Or cell.getString() = "" Then
        msg = "Select cell range with URLs to be converted to clickable links, " & _
              "then run this macro." & _
              Chr(10) &  Chr(10) & "NB: 1 column, and a URL in first row."
        MsgBox msg, MB_ICONSTOP, boxtitle
    Else
        Dim txtfld As Object, celltxt As Object
        Dim rix As Integer, subs As Integer, cstr as String
        subs = 0
        For rix = 0 To oSels.Rows.getCount - 1
            cell = oSels.getCellByPosition(0, rix)
            cstr = cell.getString()
            If Len(Trim(cstr)) > 0 And Not IsNumeric(cstr) And Not IsDate(cstr) Then
                txtfld = ThisComponent.createInstance("com.sun.star.text.TextField.URL")
                txtfld.Representation = cstr
                txtfld.URL = ConvertToURL(cstr)
                cell.setString("")
                celltxt = cell.getText()
                celltxt.insertTextContent(celltxt.createTextCursor(), txtfld, False)
                subs = subs + 1
            End If
        Next rix
        msg = "Replaced " & subs & " cells"
        MsgBox msg, MB_ICONINFORMATION, boxtitle
    End If
End Sub

相关内容