【问题标题】:How to generate a column of hyperlinks with the axlsx gem如何使用 axlsx gem 生成一列超链接
【发布时间】:2016-08-25 05:45:36
【问题描述】:

我正在尝试生成一个包含一列 URL 的工作表,我想将这些 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>

这看起来确实比它应该的要复杂,所以我认为我遗漏了一些明显的东西。

参考:How to I add a hyperlink to a cell in axlsx?

【问题讨论】:

  • 如果我猜对了,那么 sheet.add_hyperlink :location =&gt; 'https://github.com/randym/axlsx', :ref =&gt; 'R#$idx'should do the job...(对于 R 列)...但我对语法一无所知:P
  • 你最后是怎么做到的?

标签: ruby-on-rails excel hyperlink axlsx


【解决方案1】:

我猜你现在已经明白了,但是对于其他正在寻找的人来说:这里定义的 'r' 将是一个对象而不是一个数组,所以调用 'r[url_idx]' 会尝试访问一个方法当然,这不存在。您可以尝试使用“sheet.rows[url_idx]”之类的方法来获取该行,但您仍然需要指定将超链接放在哪个单元格上。

希望对某人有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多