ruby-on-rails - 为什么在 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 的新手,如果有任何见解,我将不胜感激。
解决方案
“引用无效”指向链接目标的格式。具体来说,Excel 不喜欢工作表名称包含空格。
=HYPERLINK("#'1 Centrify Server'","1")
或者
=HYPERLINK("#'1 Centrify Server'!A1","1")
这意味着:
link = %Q{HYPERLINK("#'#{worksheet.name}"',"#{row_number}")}
Excel应该更容易接受。
推荐阅读
- c++ - C ++从文本文件中提取整数并制作一个向量
- c++ - gcc 上的错误不是铿锵声:无法从“转换”
' 到 'std::vector<> - flutter - 右对齐 Flutter 中属于不同行的元素
- git - git 子模块 vs Maven 工件
- for-loop - 我将如何隔离或仅将第二个元素存储在批处理文件内的 for 循环中?
- reactjs - 在公用文件夹中创建文件夹是否有意义?
- javascript - 问:Chrome扩展:如何一打开标签就执行该功能
- ios - 在 hitTest() 或 pointInside() 中获取触摸类型
- java - 为什么从另一个类初始化时pagefactory类返回null
- node.js - Mongodb在不知道对象键的情况下选择从对象获取的信息