【问题标题】:Can Excel interpret the URLs in my CSV as hyperlinks?Excel 可以将我的 CSV 中的 URL 解释为超链接吗?
【发布时间】:2011-09-27 15:09:32
【问题描述】:

Excel 能否将我的 CSV 中的 URL 解释为超链接?如果有,怎么做?

【问题讨论】:

标签: excel csv hyperlink


【解决方案1】:

您实际上可以这样做并让 Excel 显示一个可点击的链接。在 CSV 文件中使用此格式:

=HYPERLINK("URL")

所以 CSV 看起来像:

1,23.4,=HYPERLINK("http://www.google.com")

但是,我正在尝试让一些带有逗号的链接正常工作,但看起来没有办法将它们转义并仍然让 Excel 使链接可点击。

有人知道怎么做吗?

【讨论】:

  • 建议的解决方案与 Jim 和 Hemans 的补充一起运行良好。然而,公式对于不同的语言是不同的(即 =LIEN_HYPERTEXTE("...") 用于法语。基本上这个解决方案只适用于英语 Excel(或任何其他单一语言)
  • 您可以用“引号”包裹任何 CSV 字段,然后可以添加逗号和引号(使用“”):field1,"field2","field3,with ""commas""" 应该被有效的 CSV 阅读器解释为三个字段。使用现有的 CSV 读取器/写入器库来处理这些边缘情况是个好主意。
  • 这似乎也适用于 LibreOffice 5.1.6。
  • 嗨.. 谢谢你,它适用于 csv,但我唯一担心的是它不会改变超链接的颜色。默认情况下,超链接应为蓝色或带下划线。任何人都可以在这里帮助我。
【解决方案2】:

通过嵌入超链接功能,您需要观看引号。下面是一个创建的 CSV 文件示例,其中列出了一个错误和一个链接,用于查看有关失败方法的文档。 (有点深奥,但这就是我正在研究的)

"Details","Failing Method (click to view)"
"Method failed","=HYPERLINK(""http://some_url_with_documentation"",""Method_name"")"

【讨论】:

  • HYPERLINK() 的参数必须用分号而不是逗号分隔,至少在我的(德语)版本的 Excel 2007 中是这样。
  • @cmarqu 我认为这取决于您的系统使用的列表分隔符。德语语言环境默认使用 ;作为列表分隔符,这必须用作 CSV 文件中的分隔符(具有讽刺意味的是,“逗号分隔值”的首字母缩写词)和 Excel 公式中的参数分隔符。对于美国英语等其他语言环境,默认值为逗号。所以基本上你必须使用你用来分隔 CSV 文件中的单元格的相同分隔符。这就是我在几个不同设置的 Excel 版本中测试逗号和分号后发现的结果。
【解决方案3】:

我阅读了所有这些答案和其他一些答案,但仍然需要一段时间才能在 Excel 2014 中解决。

csv 中的结果应该是这样的

"=HYPERLINK(""http://www.Google.com"",""Google"")"

注意:如果您尝试从 MSSQL 服务器进行设置,那么

'"=HYPERLINK(""http://www.' + baseurl + '.com"",""' + baseurl + '"")"' AS url

【讨论】:

    【解决方案4】:

    您可以在 URL 中对逗号进行 URL 编码,这样 URL 就不会被拆分到多个单元格中。

    只需将逗号替换为 %2c

    http://www.xyz.com/file,comma.pdf

    变成

    =hyperlink("http://www.xyz.com/file%2ccomma.pdf")

    【讨论】:

    • 感谢您的回答,它确实有效。我尝试了很多解决方案,但都没有奏效。
    【解决方案5】:

    是的,但无法自动链接它们。 CSV 文件只是文本文件 - 打开和读取它们的任何内容都负责允许您点击链接。


    关于 Excel 似乎如何处理 CSV 文件 - 逗号之间的所有内容都被解释为好像已经输入到单元格中一样。因此,包含="http://google.com",=A1 的 CSV 文件将在 Excel 中显示为http://google.com,http://google.com。然而,重要的是要注意,Excel 中的超链接是元数据,而不是实际单元格中任何内容的结果(即,指向 Google 的超链接单元格仍然包含 http://google.com 而不是 <a>http://google.com</a> 或类似的任何内容。)

    既然是这种情况,并且在转换为 CSV 时所有元数据都会丢失,因此仅通过更改单元格值就不可能告诉 Excel 您希望某些内容被超链接。通常,当您点击“Enter”并链接 URL 时,Excel 会解释您的输入,但由于没有输入 CSV 数据,而是已经存在,因此不会发生这种情况。

    最好的办法是编写某种插件或宏,以便在打开 CSV 文件时运行,它会解析每个单元格并在它们与 URL 格式匹配时超链接。

    【讨论】:

    • 啊,这是一个重要的区别。我不认为这是可能的,不。
    • 这不是答案,见下文。您可以使用 =HYPERLINK("URL")
    • 这是不正确的,你可以像下面解释的那样做"=HYPERLINK(""http://www.google.com"")",你只需要所有这些引号。
    【解决方案6】:

    "=HYPERLINK(\"\" " + "http://www.mywebsite.com"+ "\"\")" 在写入 CSV 之前使用此格式。

    【讨论】:

      【解决方案7】:

      使用这种格式:

      =HYPERLINK(""<URL>"";""<LABEL>"")
      

      例如:

      =HYPERLINK(""http://stackoverflow.com"";""I love stackoverflow!"")
      

      附注同样的格式也适用于 LibreOffice Calc。

      【讨论】:

        【解决方案8】:

        对我来说这里的问题是,因为 .CSV 本质上是逗号分隔的,所以文本文件中的任何逗号都被解释为分隔符。它通过使用制表符作为分隔符对我有用,将其保存为 .TXT 文件,以便在 EXCEL 中打开时选择制表符而不是“,”。

        在文本文件中……

        ##确保文件以TAB分隔 项目 1 文件名 data.txt
        项目 2 Col 2 =HYPERLINK("http:\www.ilexuk.com","ILEX")

        “ILEX”然后显示在单元格中,“http:\www.ilexuk.com”是单元格的超链接。

        【讨论】:

          猜你喜欢
          • 2014-12-30
          • 2010-12-22
          • 2021-11-02
          • 2015-04-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-24
          • 2013-08-26
          相关资源
          最近更新 更多