Class: Writexlsx::Worksheet::ExternalHyperlink
- Defined in:
- lib/write_xlsx/worksheet/hyperlink.rb
Constant Summary
Constants inherited from Hyperlink
Constants included from Utility
Utility::CHAR_WIDTHS, Utility::COL_MAX, Utility::PERL_TRUE_VALUES, Utility::ROW_MAX, Utility::SHEETNAME_MAX, Utility::STR_MAX
Instance Attribute Summary
Attributes inherited from Hyperlink
Instance Method Summary collapse
-
#initialize(url, str, tip, max_url_length) ⇒ ExternalHyperlink
constructor
A new instance of ExternalHyperlink.
Methods inherited from Hyperlink
#attributes, #display_on, #external_hyper_link, factory
Methods included from Utility
#absolute_char, #check_dimensions, #check_dimensions_and_update_max_min_values, #check_parameter, #color, #convert_date_time, #convert_font_args, #dash_types, delete_files, #escape_url, #fill_properties, #float_to_str, #get_font_latin_attributes, #get_font_style_attributes, #get_image_properties, #layout_properties, #legend_properties, #line_fill_properties, #line_properties, #palette_color, #params_to_font, #pattern_properties, #pixels_to_points, #process_bmp, #process_gif, #process_jpg, #process_png, #process_workbook_options, #ptrue?, #put_deprecate_message, #quote_sheetname, #r_id_attributes, #row_col_notation, #shape_style_base, #store_col_max_min_values, #store_row_max_min_values, #substitute_cellref, #underline_attributes, #v_shape_attributes_base, #v_shape_style_base, #value_or_raise, #write_a_body_pr, #write_a_def_rpr, #write_a_end_para_rpr, #write_a_lst_style, #write_a_p_formula, #write_a_p_pr_formula, #write_a_solid_fill, #write_a_srgb_clr, #write_anchor, #write_auto_fill, #write_color, #write_comment_path, #write_def_rpr_r_pr_common, #write_div, #write_fill, #write_font, #write_stroke, #write_tx_pr, #write_xml_declaration, #xl_cell_to_rowcol, #xl_col_to_name, #xl_range, #xl_range_formula, #xl_rowcol_to_cell, #xl_string_pixel_width, #xml_str
Constructor Details
#initialize(url, str, tip, max_url_length) ⇒ ExternalHyperlink
Returns a new instance of ExternalHyperlink.
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/write_xlsx/worksheet/hyperlink.rb', line 98 def initialize(url, str, tip, max_url_length) # The displayed string defaults to the url string. str ||= url.dup # For external links change the directory separator from Unix to Dos. url = url.gsub(%r{/}, '\\') str = str.gsub(%r{/}, '\\') # Strip the mailto header. str = str.sub(/^mailto:/, '') # Split url into the link and optional anchor/location. url, url_str = url.split("#", 2) # Escape URL unless it looks already escaped. url = escape_url(url) # Add the file:/// URI to the url if non-local. if url =~ /:/ || # Windows style "C:/" link. url =~ /^\\\\/ # Network share. url = "file:///#{url}" end # Convert a ./dir/file.xlsx link to dir/file.xlsx. url = url.sub(/^.\\/, '') @url_str = url_str # Excel limits the escaped URL and location/anchor to max_url_length characters. raise "Ignoring URL '#{url}' where link or anchor > #{max_url_length} characters since it exceeds Excel's limit for URLS. See LIMITATIONS section of the Excel::Writer::XLSX documentation." if url.bytesize > max_url_length || (!@url_str.nil? && @url_str.bytesize > max_url_length) @url = url @str = str @tip = tip end |