首页 > 解决方案 > 为什么在 RubyXL 中开发的超链接在 LibreOffice 而不是 Excel 中工作

问题描述

我正在使用 RubyXL 在 Rails 中工作。我正在尝试创建指向文件中不同选项卡的链接。当我在 LibreOffice(版本:4.3.7.2)中尝试链接时,链接效果很好,但是当我在 Windows 的 Excel(Office 16)中尝试链接时,会弹出一条错误消息,并显示“引用无效”。这很烦人。

我在第一张工作表 worksheet_0 上有一个选项卡表。在创建其他选项卡时,我会为每个选项卡创建一个链接,然后将链接放在 worksheet_0 上。链接文本只是选项卡编号。

这里是创建链接的代码:

  TOC_worksheet = workbook.add_worksheet("TOC") 
  products.each_with_index do |prod, index|
    ...
    worksheet = workbook.add_worksheet(name)

    row_number = index + 1
    link = %Q{HYPERLINK("##{worksheet.name}","#{row_number}")}
    TOC_worksheet.add_cell(row_number, 0, '', link)
    ...

这是 LibreOffice 和 Excel 中链接的样子

=HYPERLINK("#1 Centrify Server","1")

我是 Ruby 和 Rails 的新手,如果有任何见解,我将不胜感激。

标签: ruby-on-railsrubyxl

解决方案


“引用无效”指向链接目标的格式。具体来说,Excel 不喜欢工作表名称包含空格。

=HYPERLINK("#'1 Centrify Server'","1")

或者

=HYPERLINK("#'1 Centrify Server'!A1","1")

这意味着:

link = %Q{HYPERLINK("#'#{worksheet.name}"',"#{row_number}")}

Excel应该更容易接受。


推荐阅读