Search code examples
rubyexcelspreadsheetaxlsx

How to I add a hyperlink to a cell in axlsx?


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?


Solution

  • 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