我正在尝试生成一张包含一列URL的工作表,我想将其作为超链接呈现,而不仅仅是文本。我找到的所有示例都显示以这种方式添加超链接:
sheet.add_hyperlink :location => 'https://github.com/randym/axlsx', :ref => sheet.rows.first.cells.first
如果您只是尝试在页面上的某处放置一个超链接,这是有效的,但我正在迭代一个集合,每行将在某个列中有一个链接,具体取决于存在哪些列。
我尝试了以下内容:
@items.each do |item|
row = []
idx = 0
...
idx += 1
row << item.address
url_idx = idx
...
r = sheet.add_row row
sheet.add_hyperlink :location => item.address, :ref => r[url_idx]
end
但这只会导致错误:
undefined method `[]' for #<Axlsx::Row:0x007fa0024fb600>
这看起来确实比应该更复杂,所以我觉得我错过了一些明显的东西。
答案 0 :(得分:0)
我猜你现在已经知道了,但对于其他任何看过的人来说:&#39; r&#39;这里定义的是一个对象而不是一个数组,所以调用&#39; r [url_idx]&#39;会尝试访问一种当然不存在的方法。您可以尝试类似于&#39; sheet.rows [url_idx]&#39;获取行但您仍然需要指定将超链接放在哪个单元格上。
希望能帮助别人!