7

With the spreadsheet gem, you can run Spreadsheet::Link.new('http://hyperlinkhere.com', 'Some words') to make a spreadsheet with a cell containing the string "Some words" with a hyperlink leading to "http://hyperlinkhere.com."

What's the axlsx equivalent?

EDIT: What if I want to write a row with more than one cell?

With spreadsheet, you can do this:

        newSheetRow[13] = Spreadsheet::Link.new('url.com','text')
        newSheetRow[14] = 'some text'

How do I do that with axlsx's .add_row method?

Username
  • 3,463
  • 11
  • 68
  • 111
  • My case is a bit different, but since this answers is well linked already: I wanted to add a hyperlink to only a portion of text within a cell, but after manual testing in Excel, found that is not possible: https://superuser.com/questions/428299/hyperlinking-a-piece-of-text-in-excel – Pysis Jul 18 '17 at 18:24

1 Answers1

12

You can add both links within workbook and URLs.

p = Axlsx::Package.new
book = p.workbook
book.add_worksheet(:name => 'hyperlinks') do |sheet|
  # external references
  sheet.add_row ['axlsx']
  sheet.add_hyperlink :location => 'https://github.com/randym/axlsx', :ref => sheet.rows.first.cells.first
  # internal references
  sheet.add_hyperlink :location => "'Next Sheet'!A1", :ref => 'A2', :target => :sheet
  sheet.add_row ['next sheet']
end
Shifa Khan
  • 769
  • 6
  • 12