write_xlsx 0.85.3 → 0.85.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +3 -0
- data/Changes +15 -0
- data/Rakefile +1 -1
- data/lib/write_xlsx/compatibility.rb +1 -1
- data/lib/write_xlsx/format.rb +2 -3
- data/lib/write_xlsx/package/shared_strings.rb +6 -4
- data/lib/write_xlsx/package/xml_writer_simple.rb +6 -6
- data/lib/write_xlsx/utility.rb +4 -2
- data/lib/write_xlsx/version.rb +1 -1
- data/lib/write_xlsx/workbook.rb +6 -2
- data/lib/write_xlsx/worksheet.rb +22 -16
- data/lib/write_xlsx/worksheet/cell_data.rb +3 -1
- data/lib/write_xlsx/worksheet/hyperlink.rb +2 -2
- data/test/helper.rb +20 -0
- data/test/regression/disabled_test_vml04.rb +2 -2
- data/test/regression/test_array_formula01.rb +6 -6
- data/test/regression/test_array_formula02.rb +6 -6
- data/test/regression/test_autofilter00.rb +3 -3
- data/test/regression/test_autofilter01.rb +3 -3
- data/test/regression/test_autofilter02.rb +3 -3
- data/test/regression/test_autofilter03.rb +3 -3
- data/test/regression/test_autofilter04.rb +3 -3
- data/test/regression/test_autofilter05.rb +3 -3
- data/test/regression/test_autofilter06.rb +3 -3
- data/test/regression/test_autofilter07.rb +3 -3
- data/test/regression/test_button01.rb +3 -3
- data/test/regression/test_button02.rb +3 -3
- data/test/regression/test_button03.rb +3 -3
- data/test/regression/test_button04.rb +3 -3
- data/test/regression/test_button05.rb +3 -3
- data/test/regression/test_button06.rb +3 -3
- data/test/regression/test_button07.rb +3 -3
- data/test/regression/test_button08.rb +3 -3
- data/test/regression/test_button13.rb +2 -6
- data/test/regression/test_button14.rb +3 -3
- data/test/regression/test_chart_area01.rb +3 -3
- data/test/regression/test_chart_area02.rb +3 -3
- data/test/regression/test_chart_area03.rb +3 -3
- data/test/regression/test_chart_area04.rb +3 -3
- data/test/regression/test_chart_axis01.rb +6 -7
- data/test/regression/test_chart_axis02.rb +6 -7
- data/test/regression/test_chart_axis03.rb +9 -10
- data/test/regression/test_chart_axis04.rb +8 -9
- data/test/regression/test_chart_axis05.rb +8 -9
- data/test/regression/test_chart_axis06.rb +8 -9
- data/test/regression/test_chart_axis07.rb +8 -9
- data/test/regression/test_chart_axis08.rb +8 -9
- data/test/regression/test_chart_axis09.rb +8 -9
- data/test/regression/test_chart_axis10.rb +8 -9
- data/test/regression/test_chart_axis11.rb +8 -9
- data/test/regression/test_chart_axis12.rb +8 -9
- data/test/regression/test_chart_axis13.rb +8 -9
- data/test/regression/test_chart_axis14.rb +9 -10
- data/test/regression/test_chart_axis15.rb +9 -10
- data/test/regression/test_chart_axis16.rb +9 -10
- data/test/regression/test_chart_axis17.rb +6 -7
- data/test/regression/test_chart_axis18.rb +6 -7
- data/test/regression/test_chart_axis19.rb +6 -7
- data/test/regression/test_chart_axis20.rb +6 -7
- data/test/regression/test_chart_axis21.rb +6 -7
- data/test/regression/test_chart_axis22.rb +6 -7
- data/test/regression/test_chart_axis23.rb +6 -7
- data/test/regression/test_chart_axis24.rb +6 -7
- data/test/regression/test_chart_axis25.rb +6 -7
- data/test/regression/test_chart_axis26.rb +6 -7
- data/test/regression/test_chart_axis27.rb +6 -7
- data/test/regression/test_chart_axis28.rb +6 -7
- data/test/regression/test_chart_axis29.rb +6 -7
- data/test/regression/test_chart_axis30.rb +3 -7
- data/test/regression/test_chart_axis31.rb +3 -7
- data/test/regression/test_chart_axis32.rb +3 -7
- data/test/regression/test_chart_axis33.rb +6 -7
- data/test/regression/test_chart_axis34.rb +6 -7
- data/test/regression/test_chart_axis35.rb +6 -7
- data/test/regression/test_chart_axis36.rb +6 -7
- data/test/regression/test_chart_axis37.rb +6 -7
- data/test/regression/test_chart_axis38.rb +5 -10
- data/test/regression/test_chart_axis39.rb +6 -7
- data/test/regression/test_chart_bar01.rb +3 -3
- data/test/regression/test_chart_bar02.rb +11 -12
- data/test/regression/test_chart_bar03.rb +12 -13
- data/test/regression/test_chart_bar04.rb +12 -13
- data/test/regression/test_chart_bar05.rb +3 -7
- data/test/regression/test_chart_bar06.rb +9 -10
- data/test/regression/test_chart_bar07.rb +13 -14
- data/test/regression/test_chart_bar08.rb +3 -7
- data/test/regression/test_chart_bar09.rb +6 -7
- data/test/regression/test_chart_bar10.rb +6 -7
- data/test/regression/test_chart_bar11.rb +23 -25
- data/test/regression/test_chart_bar12.rb +3 -8
- data/test/regression/test_chart_bar13.rb +3 -8
- data/test/regression/test_chart_bar14.rb +10 -12
- data/test/regression/test_chart_bar15.rb +9 -11
- data/test/regression/test_chart_bar16.rb +8 -10
- data/test/regression/test_chart_bar17.rb +8 -10
- data/test/regression/test_chart_bar18.rb +17 -19
- data/test/regression/test_chart_bar19.rb +8 -10
- data/test/regression/test_chart_bar20.rb +8 -10
- data/test/regression/test_chart_bar21.rb +3 -7
- data/test/regression/test_chart_bar22.rb +8 -10
- data/test/regression/test_chart_bar23.rb +8 -10
- data/test/regression/test_chart_bar24.rb +9 -10
- data/test/regression/test_chart_blank01.rb +3 -3
- data/test/regression/test_chart_blank02.rb +3 -3
- data/test/regression/test_chart_blank03.rb +3 -3
- data/test/regression/test_chart_blank04.rb +3 -3
- data/test/regression/test_chart_blank05.rb +6 -8
- data/test/regression/test_chart_blank06.rb +3 -3
- data/test/regression/test_chart_chartarea01.rb +3 -3
- data/test/regression/test_chart_chartarea02.rb +3 -3
- data/test/regression/test_chart_chartarea03.rb +3 -3
- data/test/regression/test_chart_chartarea04.rb +6 -8
- data/test/regression/test_chart_chartarea05.rb +3 -3
- data/test/regression/test_chart_clustered01.rb +3 -3
- data/test/regression/test_chart_column01.rb +3 -7
- data/test/regression/test_chart_column02.rb +8 -9
- data/test/regression/test_chart_column03.rb +8 -9
- data/test/regression/test_chart_column04.rb +9 -10
- data/test/regression/test_chart_column05.rb +3 -3
- data/test/regression/test_chart_column06.rb +8 -9
- data/test/regression/test_chart_column07.rb +3 -7
- data/test/regression/test_chart_column08.rb +3 -7
- data/test/regression/test_chart_column09.rb +3 -7
- data/test/regression/test_chart_column10.rb +3 -7
- data/test/regression/test_chart_column11.rb +3 -7
- data/test/regression/test_chart_column12.rb +2 -10
- data/test/regression/test_chart_combined01.rb +3 -3
- data/test/regression/test_chart_combined02.rb +3 -3
- data/test/regression/test_chart_combined03.rb +3 -3
- data/test/regression/test_chart_combined04.rb +3 -3
- data/test/regression/test_chart_combined05.rb +3 -3
- data/test/regression/test_chart_combined06.rb +3 -3
- data/test/regression/test_chart_combined07.rb +3 -3
- data/test/regression/test_chart_combined08.rb +3 -3
- data/test/regression/test_chart_crossing01.rb +8 -9
- data/test/regression/test_chart_crossing02.rb +8 -9
- data/test/regression/test_chart_crossing03.rb +8 -9
- data/test/regression/test_chart_crossing04.rb +8 -9
- data/test/regression/test_chart_data_labels01.rb +3 -3
- data/test/regression/test_chart_data_labels02.rb +3 -3
- data/test/regression/test_chart_data_labels03.rb +3 -3
- data/test/regression/test_chart_data_labels04.rb +3 -3
- data/test/regression/test_chart_data_labels05.rb +3 -3
- data/test/regression/test_chart_data_labels06.rb +3 -3
- data/test/regression/test_chart_data_labels07.rb +3 -3
- data/test/regression/test_chart_data_labels08.rb +3 -3
- data/test/regression/test_chart_data_labels09.rb +3 -3
- data/test/regression/test_chart_data_labels10.rb +3 -3
- data/test/regression/test_chart_data_labels11.rb +3 -3
- data/test/regression/test_chart_data_labels12.rb +3 -3
- data/test/regression/test_chart_data_labels13.rb +3 -3
- data/test/regression/test_chart_data_labels14.rb +3 -3
- data/test/regression/test_chart_data_labels15.rb +3 -3
- data/test/regression/test_chart_data_labels16.rb +3 -3
- data/test/regression/test_chart_data_labels17.rb +3 -3
- data/test/regression/test_chart_data_labels18.rb +3 -3
- data/test/regression/test_chart_data_labels19.rb +3 -3
- data/test/regression/test_chart_data_labels20.rb +3 -3
- data/test/regression/test_chart_data_labels21.rb +3 -3
- data/test/regression/test_chart_data_labels22.rb +3 -3
- data/test/regression/test_chart_data_labels23.rb +3 -3
- data/test/regression/test_chart_data_labels24.rb +3 -3
- data/test/regression/test_chart_date01.rb +2 -6
- data/test/regression/test_chart_date02.rb +3 -3
- data/test/regression/test_chart_date03.rb +3 -3
- data/test/regression/test_chart_date04.rb +3 -3
- data/test/regression/test_chart_date05.rb +3 -3
- data/test/regression/test_chart_display_units01.rb +3 -3
- data/test/regression/test_chart_display_units02.rb +3 -3
- data/test/regression/test_chart_display_units03.rb +3 -3
- data/test/regression/test_chart_display_units04.rb +3 -3
- data/test/regression/test_chart_display_units05.rb +3 -3
- data/test/regression/test_chart_display_units06.rb +3 -3
- data/test/regression/test_chart_display_units07.rb +3 -3
- data/test/regression/test_chart_display_units08.rb +3 -3
- data/test/regression/test_chart_display_units09.rb +3 -3
- data/test/regression/test_chart_display_units10.rb +3 -3
- data/test/regression/test_chart_display_units11.rb +3 -3
- data/test/regression/test_chart_display_units12.rb +3 -3
- data/test/regression/test_chart_doughnut01.rb +3 -7
- data/test/regression/test_chart_doughnut02.rb +3 -7
- data/test/regression/test_chart_doughnut03.rb +3 -7
- data/test/regression/test_chart_doughnut04.rb +3 -7
- data/test/regression/test_chart_doughnut05.rb +3 -7
- data/test/regression/test_chart_doughnut06.rb +3 -7
- data/test/regression/test_chart_drop_lines01.rb +3 -3
- data/test/regression/test_chart_drop_lines02.rb +3 -3
- data/test/regression/test_chart_drop_lines03.rb +3 -3
- data/test/regression/test_chart_drop_lines04.rb +3 -3
- data/test/regression/test_chart_errorbars01.rb +3 -4
- data/test/regression/test_chart_errorbars02.rb +3 -4
- data/test/regression/test_chart_errorbars03.rb +3 -4
- data/test/regression/test_chart_errorbars04.rb +3 -4
- data/test/regression/test_chart_errorbars05.rb +3 -4
- data/test/regression/test_chart_errorbars06.rb +3 -4
- data/test/regression/test_chart_errorbars07.rb +6 -7
- data/test/regression/test_chart_errorbars08.rb +3 -7
- data/test/regression/test_chart_errorbars09.rb +3 -7
- data/test/regression/test_chart_errorbars10.rb +3 -7
- data/test/regression/test_chart_font01.rb +3 -3
- data/test/regression/test_chart_font02.rb +3 -3
- data/test/regression/test_chart_font03.rb +3 -3
- data/test/regression/test_chart_font04.rb +3 -3
- data/test/regression/test_chart_font05.rb +3 -3
- data/test/regression/test_chart_font06.rb +3 -3
- data/test/regression/test_chart_font07.rb +3 -3
- data/test/regression/test_chart_font08.rb +3 -3
- data/test/regression/test_chart_font09.rb +2 -6
- data/test/regression/test_chart_format01.rb +3 -3
- data/test/regression/test_chart_format02.rb +3 -3
- data/test/regression/test_chart_format03.rb +3 -3
- data/test/regression/test_chart_format04.rb +3 -3
- data/test/regression/test_chart_format05.rb +3 -3
- data/test/regression/test_chart_format06.rb +8 -10
- data/test/regression/test_chart_format07.rb +8 -10
- data/test/regression/test_chart_format08.rb +8 -10
- data/test/regression/test_chart_format09.rb +8 -10
- data/test/regression/test_chart_format10.rb +8 -10
- data/test/regression/test_chart_format11.rb +8 -10
- data/test/regression/test_chart_format12.rb +8 -10
- data/test/regression/test_chart_format13.rb +8 -10
- data/test/regression/test_chart_format14.rb +8 -10
- data/test/regression/test_chart_format15.rb +8 -10
- data/test/regression/test_chart_format16.rb +8 -10
- data/test/regression/test_chart_format17.rb +3 -4
- data/test/regression/test_chart_format18.rb +3 -4
- data/test/regression/test_chart_format19.rb +3 -4
- data/test/regression/test_chart_format20.rb +3 -4
- data/test/regression/test_chart_gap01.rb +3 -3
- data/test/regression/test_chart_gap02.rb +3 -3
- data/test/regression/test_chart_gap03.rb +3 -3
- data/test/regression/test_chart_gap04.rb +3 -3
- data/test/regression/test_chart_gap05.rb +3 -3
- data/test/regression/test_chart_gradient01.rb +3 -6
- data/test/regression/test_chart_gradient02.rb +3 -6
- data/test/regression/test_chart_gradient03.rb +3 -6
- data/test/regression/test_chart_gradient04.rb +3 -6
- data/test/regression/test_chart_gradient05.rb +3 -6
- data/test/regression/test_chart_gradient06.rb +3 -6
- data/test/regression/test_chart_gradient07.rb +3 -6
- data/test/regression/test_chart_gradient08.rb +3 -6
- data/test/regression/test_chart_gradient09.rb +3 -6
- data/test/regression/test_chart_gradient10.rb +3 -6
- data/test/regression/test_chart_gradient11.rb +3 -6
- data/test/regression/test_chart_gradient12.rb +3 -6
- data/test/regression/test_chart_gradient13.rb +3 -6
- data/test/regression/test_chart_gridlines01.rb +3 -6
- data/test/regression/test_chart_gridlines02.rb +3 -6
- data/test/regression/test_chart_gridlines03.rb +6 -8
- data/test/regression/test_chart_gridlines04.rb +3 -6
- data/test/regression/test_chart_gridlines05.rb +3 -6
- data/test/regression/test_chart_gridlines06.rb +3 -6
- data/test/regression/test_chart_gridlines07.rb +6 -8
- data/test/regression/test_chart_gridlines08.rb +3 -6
- data/test/regression/test_chart_gridlines09.rb +3 -6
- data/test/regression/test_chart_layout01.rb +3 -3
- data/test/regression/test_chart_layout02.rb +3 -3
- data/test/regression/test_chart_layout03.rb +3 -3
- data/test/regression/test_chart_layout04.rb +3 -3
- data/test/regression/test_chart_layout05.rb +3 -3
- data/test/regression/test_chart_layout06.rb +3 -3
- data/test/regression/test_chart_layout07.rb +3 -3
- data/test/regression/test_chart_layout08.rb +3 -3
- data/test/regression/test_chart_legend01.rb +3 -8
- data/test/regression/test_chart_legend02.rb +3 -8
- data/test/regression/test_chart_line01.rb +3 -3
- data/test/regression/test_chart_line02.rb +9 -10
- data/test/regression/test_chart_line03.rb +3 -3
- data/test/regression/test_chart_line04.rb +3 -3
- data/test/regression/test_chart_name01.rb +3 -6
- data/test/regression/test_chart_name02.rb +3 -6
- data/test/regression/test_chart_name03.rb +3 -6
- data/test/regression/test_chart_order01.rb +3 -6
- data/test/regression/test_chart_order02.rb +3 -6
- data/test/regression/test_chart_order03.rb +10 -12
- data/test/regression/test_chart_pie01.rb +3 -3
- data/test/regression/test_chart_pie02.rb +3 -3
- data/test/regression/test_chart_pie03.rb +3 -3
- data/test/regression/test_chart_pie04.rb +3 -3
- data/test/regression/test_chart_pie05.rb +3 -3
- data/test/regression/test_chart_points01.rb +3 -3
- data/test/regression/test_chart_points02.rb +3 -3
- data/test/regression/test_chart_points03.rb +3 -3
- data/test/regression/test_chart_points04.rb +3 -3
- data/test/regression/test_chart_points05.rb +3 -3
- data/test/regression/test_chart_points06.rb +3 -3
- data/test/regression/test_chart_radar01.rb +3 -3
- data/test/regression/test_chart_radar02.rb +3 -3
- data/test/regression/test_chart_radar03.rb +3 -3
- data/test/regression/test_chart_scatter01.rb +3 -3
- data/test/regression/test_chart_scatter02.rb +3 -3
- data/test/regression/test_chart_scatter03.rb +3 -3
- data/test/regression/test_chart_scatter04.rb +3 -3
- data/test/regression/test_chart_scatter05.rb +3 -3
- data/test/regression/test_chart_scatter06.rb +3 -3
- data/test/regression/test_chart_scatter07.rb +9 -10
- data/test/regression/test_chart_scatter08.rb +3 -3
- data/test/regression/test_chart_scatter09.rb +3 -3
- data/test/regression/test_chart_scatter10.rb +3 -3
- data/test/regression/test_chart_scatter11.rb +3 -3
- data/test/regression/test_chart_scatter12.rb +3 -3
- data/test/regression/test_chart_scatter13.rb +3 -3
- data/test/regression/test_chart_scatter14.rb +3 -3
- data/test/regression/test_chart_scatter15.rb +3 -3
- data/test/regression/test_chart_size01.rb +3 -3
- data/test/regression/test_chart_size02.rb +3 -3
- data/test/regression/test_chart_size03.rb +3 -3
- data/test/regression/test_chart_size04.rb +3 -3
- data/test/regression/test_chart_size05.rb +3 -3
- data/test/regression/test_chart_sparse01.rb +6 -9
- data/test/regression/test_chart_stock01.rb +6 -8
- data/test/regression/test_chart_stock02.rb +10 -12
- data/test/regression/test_chart_str01.rb +3 -8
- data/test/regression/test_chart_str02.rb +3 -8
- data/test/regression/test_chart_table01.rb +3 -6
- data/test/regression/test_chart_table02.rb +3 -6
- data/test/regression/test_chart_title01.rb +3 -8
- data/test/regression/test_chart_title02.rb +3 -8
- data/test/regression/test_chartsheet01.rb +3 -8
- data/test/regression/test_chartsheet02.rb +8 -10
- data/test/regression/test_chartsheet03.rb +8 -10
- data/test/regression/test_chartsheet04.rb +8 -10
- data/test/regression/test_chartsheet05.rb +8 -10
- data/test/regression/test_chartsheet06.rb +7 -13
- data/test/regression/test_chartsheet07.rb +16 -18
- data/test/regression/test_chartsheet08.rb +16 -18
- data/test/regression/test_chartsheet09.rb +8 -10
- data/test/regression/test_comment01.rb +3 -3
- data/test/regression/test_comment02.rb +3 -3
- data/test/regression/test_comment03.rb +6 -7
- data/test/regression/test_comment04.rb +6 -7
- data/test/regression/test_comment06.rb +6 -7
- data/test/regression/test_comment07.rb +6 -7
- data/test/regression/test_comment08.rb +6 -7
- data/test/regression/test_comment09.rb +6 -7
- data/test/regression/test_comment10.rb +6 -7
- data/test/regression/test_comment11.rb +6 -8
- data/test/regression/test_comment12.rb +3 -8
- data/test/regression/test_cond_format01.rb +6 -7
- data/test/regression/test_cond_format02.rb +6 -7
- data/test/regression/test_cond_format03.rb +6 -7
- data/test/regression/test_cond_format04.rb +6 -7
- data/test/regression/test_cond_format05.rb +6 -7
- data/test/regression/test_cond_format06.rb +6 -7
- data/test/regression/test_cond_format07.rb +6 -7
- data/test/regression/test_cond_format08.rb +6 -7
- data/test/regression/test_cond_format10.rb +6 -7
- data/test/regression/test_cond_format11.rb +6 -7
- data/test/regression/test_cond_format12.rb +6 -7
- data/test/regression/test_cond_format13.rb +6 -7
- data/test/regression/test_custom_colors01.rb +3 -3
- data/test/regression/test_data_validation01.rb +3 -3
- data/test/regression/test_data_validation02.rb +3 -3
- data/test/regression/test_data_validation03.rb +3 -3
- data/test/regression/test_data_validation04.rb +1 -5
- data/test/regression/test_data_validation05.rb +1 -5
- data/test/regression/test_date_1904_01.rb +3 -8
- data/test/regression/test_date_1904_02.rb +3 -8
- data/test/regression/test_date_examples01.rb +3 -3
- data/test/regression/test_default_format01.rb +2 -6
- data/test/regression/test_default_row01.rb +3 -3
- data/test/regression/test_default_row02.rb +3 -3
- data/test/regression/test_default_row03.rb +3 -3
- data/test/regression/test_default_row04.rb +3 -3
- data/test/regression/test_defined_name01.rb +10 -12
- data/test/regression/test_defined_name02.rb +10 -12
- data/test/regression/test_defined_name03.rb +10 -12
- data/test/regression/test_defined_name04.rb +2 -7
- data/test/regression/test_escapes01.rb +8 -10
- data/test/regression/test_escapes02.rb +8 -9
- data/test/regression/test_escapes03.rb +8 -9
- data/test/regression/test_escapes04.rb +8 -10
- data/test/regression/test_escapes05.rb +8 -10
- data/test/regression/test_escapes06.rb +3 -6
- data/test/regression/test_escapes07.rb +3 -6
- data/test/regression/test_escapes08.rb +3 -6
- data/test/regression/test_excel2003_style01.rb +3 -3
- data/test/regression/test_excel2003_style02.rb +3 -3
- data/test/regression/test_excel2003_style03.rb +3 -3
- data/test/regression/test_excel2003_style04.rb +3 -3
- data/test/regression/test_excel2003_style05.rb +3 -3
- data/test/regression/test_excel2003_style06.rb +3 -3
- data/test/regression/test_excel2003_style07.rb +3 -3
- data/test/regression/test_excel2003_style08.rb +3 -3
- data/test/regression/test_firstsheet01.rb +3 -8
- data/test/regression/test_fit_to_pages01.rb +12 -14
- data/test/regression/test_fit_to_pages02.rb +12 -14
- data/test/regression/test_fit_to_pages03.rb +12 -14
- data/test/regression/test_fit_to_pages04.rb +12 -14
- data/test/regression/test_fit_to_pages05.rb +12 -14
- data/test/regression/test_format01.rb +3 -3
- data/test/regression/test_format02.rb +3 -3
- data/test/regression/test_format03.rb +3 -3
- data/test/regression/test_format04.rb +3 -3
- data/test/regression/test_format05.rb +3 -3
- data/test/regression/test_format11.rb +3 -3
- data/test/regression/test_format12.rb +3 -3
- data/test/regression/test_formula_results01.rb +3 -3
- data/test/regression/test_gridlines01.rb +12 -14
- data/test/regression/test_header01.rb +3 -3
- data/test/regression/test_header02.rb +3 -3
- data/test/regression/test_header03.rb +3 -3
- data/test/regression/test_header_image01.rb +3 -3
- data/test/regression/test_header_image02.rb +3 -3
- data/test/regression/test_header_image03.rb +3 -3
- data/test/regression/test_header_image04.rb +3 -3
- data/test/regression/test_header_image05.rb +3 -3
- data/test/regression/test_header_image06.rb +3 -3
- data/test/regression/test_header_image07.rb +3 -3
- data/test/regression/test_header_image08.rb +3 -3
- data/test/regression/test_header_image09.rb +8 -12
- data/test/regression/test_header_image10.rb +3 -3
- data/test/regression/test_header_image11.rb +3 -3
- data/test/regression/test_header_image12.rb +3 -3
- data/test/regression/test_header_image13.rb +3 -3
- data/test/regression/test_header_image14.rb +3 -3
- data/test/regression/test_hide01.rb +3 -8
- data/test/regression/test_hyperlink01.rb +3 -3
- data/test/regression/test_hyperlink02.rb +3 -3
- data/test/regression/test_hyperlink03.rb +3 -3
- data/test/regression/test_hyperlink04.rb +3 -3
- data/test/regression/test_hyperlink05.rb +3 -3
- data/test/regression/test_hyperlink06.rb +3 -3
- data/test/regression/test_hyperlink07.rb +2 -6
- data/test/regression/test_hyperlink08.rb +3 -3
- data/test/regression/test_hyperlink09.rb +3 -3
- data/test/regression/test_hyperlink10.rb +3 -3
- data/test/regression/test_hyperlink11.rb +3 -3
- data/test/regression/test_hyperlink12.rb +3 -3
- data/test/regression/test_hyperlink13.rb +3 -3
- data/test/regression/test_hyperlink14.rb +3 -3
- data/test/regression/test_hyperlink15.rb +3 -3
- data/test/regression/test_hyperlink16.rb +3 -3
- data/test/regression/test_hyperlink17.rb +3 -3
- data/test/regression/test_hyperlink18.rb +3 -3
- data/test/regression/test_hyperlink20.rb +3 -3
- data/test/regression/test_hyperlink21.rb +3 -3
- data/test/regression/test_image01.rb +3 -3
- data/test/regression/test_image02.rb +3 -3
- data/test/regression/test_image03.rb +3 -3
- data/test/regression/test_image04.rb +3 -3
- data/test/regression/test_image05.rb +3 -3
- data/test/regression/test_image06.rb +3 -3
- data/test/regression/test_image07.rb +3 -3
- data/test/regression/test_image08.rb +3 -3
- data/test/regression/test_image09.rb +3 -3
- data/test/regression/test_image10.rb +3 -3
- data/test/regression/test_image11.rb +3 -3
- data/test/regression/test_image12.rb +3 -3
- data/test/regression/test_image13.rb +3 -3
- data/test/regression/test_image14.rb +3 -3
- data/test/regression/test_image15.rb +3 -3
- data/test/regression/test_image16.rb +3 -3
- data/test/regression/test_image17.rb +2 -6
- data/test/regression/test_image18.rb +3 -3
- data/test/regression/test_image19.rb +3 -3
- data/test/regression/test_image22.rb +3 -3
- data/test/regression/test_image23.rb +3 -3
- data/test/regression/test_image24.rb +3 -3
- data/test/regression/test_image25.rb +3 -3
- data/test/regression/test_image26.rb +3 -3
- data/test/regression/test_image27.rb +3 -3
- data/test/regression/test_landscape01.rb +3 -3
- data/test/regression/test_macro01.rb +3 -3
- data/test/regression/test_merge_cells01.rb +2 -6
- data/test/regression/test_merge_range01.rb +3 -6
- data/test/regression/test_merge_range02.rb +3 -6
- data/test/regression/test_merge_range03.rb +3 -6
- data/test/regression/test_merge_range04.rb +3 -6
- data/test/regression/test_merge_range05.rb +3 -6
- data/test/regression/test_outline01.rb +12 -14
- data/test/regression/test_outline02.rb +12 -14
- data/test/regression/test_outline03.rb +12 -14
- data/test/regression/test_outline04.rb +12 -14
- data/test/regression/test_outline05.rb +12 -14
- data/test/regression/test_outline06.rb +12 -14
- data/test/regression/test_page_breaks01.rb +12 -14
- data/test/regression/test_page_breaks02.rb +12 -14
- data/test/regression/test_page_breaks03.rb +12 -14
- data/test/regression/test_page_breaks04.rb +12 -14
- data/test/regression/test_page_breaks05.rb +12 -14
- data/test/regression/test_page_breaks06.rb +12 -14
- data/test/regression/test_page_view01.rb +12 -14
- data/test/regression/test_panes01.rb +3 -8
- data/test/regression/test_print_across01.rb +12 -14
- data/test/regression/test_print_area01.rb +12 -14
- data/test/regression/test_print_area02.rb +12 -14
- data/test/regression/test_print_area03.rb +12 -14
- data/test/regression/test_print_area04.rb +12 -14
- data/test/regression/test_print_area05.rb +12 -14
- data/test/regression/test_print_area06.rb +12 -14
- data/test/regression/test_print_area07.rb +12 -14
- data/test/regression/test_print_options01.rb +12 -14
- data/test/regression/test_print_options02.rb +12 -14
- data/test/regression/test_print_options03.rb +12 -14
- data/test/regression/test_print_options04.rb +12 -14
- data/test/regression/test_print_options05.rb +12 -14
- data/test/regression/test_print_options06.rb +12 -14
- data/test/regression/test_print_options07.rb +3 -5
- data/test/regression/test_print_scale01.rb +12 -14
- data/test/regression/test_print_scale02.rb +12 -14
- data/test/regression/test_properties01.rb +6 -7
- data/test/regression/test_protect01.rb +3 -3
- data/test/regression/test_protect02.rb +3 -3
- data/test/regression/test_protect03.rb +3 -3
- data/test/regression/test_quote_name01.rb +3 -3
- data/test/regression/test_quote_name03.rb +3 -3
- data/test/regression/test_quote_name04.rb +3 -3
- data/test/regression/test_repeat01.rb +12 -14
- data/test/regression/test_repeat02.rb +12 -14
- data/test/regression/test_repeat03.rb +12 -14
- data/test/regression/test_repeat04.rb +12 -14
- data/test/regression/test_repeat05.rb +15 -17
- data/test/regression/test_rich_string01.rb +3 -3
- data/test/regression/test_rich_string02.rb +3 -3
- data/test/regression/test_rich_string03.rb +3 -3
- data/test/regression/test_rich_string04.rb +3 -3
- data/test/regression/test_rich_string05.rb +3 -3
- data/test/regression/test_rich_string06.rb +3 -3
- data/test/regression/test_rich_string07.rb +3 -3
- data/test/regression/test_rich_string08.rb +3 -3
- data/test/regression/test_rich_string09.rb +3 -3
- data/test/regression/test_rich_string10.rb +3 -3
- data/test/regression/test_rich_string11.rb +3 -3
- data/test/regression/test_rich_string12.rb +3 -3
- data/test/regression/test_row_col_format01.rb +3 -3
- data/test/regression/test_row_col_format02.rb +3 -3
- data/test/regression/test_row_col_format03.rb +3 -3
- data/test/regression/test_row_col_format04.rb +3 -3
- data/test/regression/test_row_col_format05.rb +3 -3
- data/test/regression/test_row_col_format06.rb +3 -3
- data/test/regression/test_row_col_format07.rb +3 -3
- data/test/regression/test_row_col_format08.rb +3 -3
- data/test/regression/test_row_col_format09.rb +3 -3
- data/test/regression/test_row_col_format10.rb +3 -3
- data/test/regression/test_row_col_format11.rb +3 -3
- data/test/regression/test_row_col_format12.rb +3 -3
- data/test/regression/test_row_col_format13.rb +3 -3
- data/test/regression/test_row_col_format14.rb +3 -3
- data/test/regression/test_selection01.rb +3 -3
- data/test/regression/test_selection02.rb +3 -3
- data/test/regression/test_set_column01.rb +3 -3
- data/test/regression/test_set_column02.rb +3 -3
- data/test/regression/test_set_column03.rb +2 -6
- data/test/regression/test_set_column04.rb +3 -3
- data/test/regression/test_set_column05.rb +3 -3
- data/test/regression/test_set_column06.rb +3 -3
- data/test/regression/test_set_column07.rb +3 -3
- data/test/regression/test_set_column08.rb +3 -3
- data/test/regression/test_set_column09.rb +3 -3
- data/test/regression/test_set_print_scale01.rb +3 -3
- data/test/regression/test_set_start_page01.rb +3 -3
- data/test/regression/test_set_start_page02.rb +3 -3
- data/test/regression/test_set_start_page03.rb +3 -3
- data/test/regression/test_shape01.rb +3 -3
- data/test/regression/test_shape02.rb +3 -3
- data/test/regression/test_shape03.rb +3 -3
- data/test/regression/test_shape04.rb +3 -3
- data/test/regression/test_shape_connect01.rb +3 -3
- data/test/regression/test_shape_connect02.rb +3 -3
- data/test/regression/test_shape_connect03.rb +3 -3
- data/test/regression/test_shape_connect04.rb +3 -3
- data/test/regression/test_shape_scale01.rb +12 -14
- data/test/regression/test_shape_stencil01.rb +3 -8
- data/test/regression/test_shared_strings01.rb +6 -8
- data/test/regression/test_shared_strings02.rb +6 -8
- data/test/regression/test_shared_strings_encoding.rb +0 -103
- data/test/regression/test_simple01.rb +3 -3
- data/test/regression/test_simple02.rb +3 -3
- data/test/regression/test_simple03.rb +3 -3
- data/test/regression/test_simple04.rb +3 -3
- data/test/regression/test_simple05.rb +3 -3
- data/test/regression/test_tab_color01.rb +2 -11
- data/test/regression/test_table01.rb +3 -3
- data/test/regression/test_table02.rb +3 -3
- data/test/regression/test_table03.rb +3 -3
- data/test/regression/test_table04.rb +3 -3
- data/test/regression/test_table05.rb +3 -3
- data/test/regression/test_table06.rb +3 -3
- data/test/regression/test_table07.rb +3 -3
- data/test/regression/test_table08.rb +3 -3
- data/test/regression/test_table09.rb +3 -3
- data/test/regression/test_table10.rb +3 -3
- data/test/regression/test_table11.rb +3 -3
- data/test/regression/test_table12.rb +3 -3
- data/test/regression/test_table13.rb +3 -3
- data/test/regression/test_table14.rb +3 -3
- data/test/regression/test_table15.rb +3 -3
- data/test/regression/test_table16.rb +3 -3
- data/test/regression/test_table17.rb +3 -3
- data/test/regression/test_tutorial01.rb +3 -3
- data/test/regression/test_tutorial02.rb +3 -3
- data/test/regression/test_tutorial03.rb +3 -3
- data/test/regression/test_urls_as_strings.rb +25 -0
- data/test/regression/test_utf8_01.rb +3 -3
- data/test/regression/test_utf8_03.rb +3 -3
- data/test/regression/test_utf8_04.rb +3 -3
- data/test/regression/test_utf8_05.rb +3 -3
- data/test/regression/test_utf8_06.rb +3 -3
- data/test/regression/test_utf8_07.rb +3 -3
- data/test/regression/test_utf8_08.rb +3 -3
- data/test/regression/test_utf8_09.rb +2 -6
- data/test/regression/test_utf8_10.rb +3 -3
- data/test/regression/test_vml01.rb +3 -3
- data/test/regression/test_vml02.rb +3 -3
- data/test/regression/test_vml03.rb +3 -3
- data/test/regression/xlsx_files/urls_as_strings.xlsx +0 -0
- data/test/test_example_match.rb +199 -133
- data/test/test_xml_writer_simple.rb +3 -3
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1a8ed1e139d973baf49fc349d874da19de256e10ac34f2b4f5a08ec6dcac1eba
|
4
|
+
data.tar.gz: a553667cbe7443f9c9bbfc74d28a9a30e830c95dec213e2d70ca48862bb0505a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec4e891ca22e53564f6a715aca9efce06c19782a4274d71ddb485b2bc34f1bf4f11a5f70b736b5fd4f23d74b47e68235c8ef4781fd3c014cad7cbf7c07501963
|
7
|
+
data.tar.gz: e262a4b65b0da4703894ab831f36a1058dcae5d71d103d7f83c313c0ada4e30db534eaabc3273b4c784c1b06d14de4730506b142ea49c8dc32c283339604f0c3
|
data/.gitignore
CHANGED
data/Changes
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
Change history of write_xlsx rubygem.
|
2
2
|
|
3
|
+
2020-09-03 v0.85.8
|
4
|
+
apply pull-request #58 and #52
|
5
|
+
|
6
|
+
2019-06-20 v0.85.7
|
7
|
+
apply pull-request #26
|
8
|
+
|
9
|
+
2019-02-10 v0.85.6
|
10
|
+
Fix work well in ms windows.
|
11
|
+
|
12
|
+
2018-04-29 v0.85.5
|
13
|
+
Added option to store hyperlink strings as string (strings_as_urls: false).
|
14
|
+
|
15
|
+
2018-04-29 v0.85.4
|
16
|
+
Added option to store hyperlink strings as string (urls_as_strings).
|
17
|
+
|
3
18
|
2018-01-07 v0.85.3
|
4
19
|
Fix hide first sheet problem #37
|
5
20
|
|
data/Rakefile
CHANGED
data/lib/write_xlsx/format.rb
CHANGED
@@ -287,11 +287,10 @@ def set_format_properties(*properties) # :nodoc:
|
|
287
287
|
|
288
288
|
# Create a sub to set the property.
|
289
289
|
if value.respond_to?(:to_str) || !value.respond_to?(:+)
|
290
|
-
|
290
|
+
send("set_#{key}", value.to_s)
|
291
291
|
else
|
292
|
-
|
292
|
+
send("set_#{key}", value)
|
293
293
|
end
|
294
|
-
eval s
|
295
294
|
end
|
296
295
|
end
|
297
296
|
end
|
@@ -9,14 +9,15 @@ class SharedStrings
|
|
9
9
|
include Writexlsx::Utility
|
10
10
|
|
11
11
|
def initialize
|
12
|
-
@writer
|
13
|
-
@strings
|
14
|
-
@
|
12
|
+
@writer = Package::XMLWriterSimple.new
|
13
|
+
@strings = [] # string table
|
14
|
+
@strings_index = {} # string table index
|
15
|
+
@count = {} # count
|
15
16
|
end
|
16
17
|
|
17
18
|
def index(string, params = {})
|
18
19
|
add(string) unless params[:only_query]
|
19
|
-
@
|
20
|
+
@strings_index[string]
|
20
21
|
end
|
21
22
|
|
22
23
|
def add(string)
|
@@ -25,6 +26,7 @@ def add(string)
|
|
25
26
|
@count[str] += 1
|
26
27
|
else
|
27
28
|
@strings << str
|
29
|
+
@strings_index[str] = @strings.size - 1
|
28
30
|
@count[str] = 1
|
29
31
|
end
|
30
32
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
# frozen_string_literal: true
|
2
3
|
#
|
3
4
|
# XMLWriterSimple
|
4
5
|
#
|
@@ -29,10 +30,9 @@ def tag_elements(tag, attributes = [])
|
|
29
30
|
end
|
30
31
|
|
31
32
|
def tag_elements_str(tag, attributes = [])
|
32
|
-
str =
|
33
|
-
|
34
|
-
|
35
|
-
str << end_tag_str(tag)
|
33
|
+
str = start_tag_str(tag, attributes) +
|
34
|
+
yield +
|
35
|
+
end_tag_str(tag)
|
36
36
|
end
|
37
37
|
|
38
38
|
def start_tag(tag, attr = [])
|
@@ -65,7 +65,7 @@ def empty_tag_encoded_str(tag, attr = [])
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def data_element(tag, data, attr = [])
|
68
|
-
tag_elements(tag, attr) { io_write(
|
68
|
+
tag_elements(tag, attr) { io_write(escape_data(data)) }
|
69
69
|
end
|
70
70
|
|
71
71
|
#
|
@@ -92,7 +92,7 @@ def crlf
|
|
92
92
|
|
93
93
|
def close
|
94
94
|
if @filename
|
95
|
-
File.open(@filename, "wb") { |f| f << string }
|
95
|
+
File.open(@filename, "wb:utf-8:utf-8") { |f| f << string }
|
96
96
|
end
|
97
97
|
@io.close
|
98
98
|
end
|
data/lib/write_xlsx/utility.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
+
# frozen_string_literal: true
|
2
3
|
require 'write_xlsx/col_name'
|
3
4
|
|
4
5
|
module Writexlsx
|
@@ -303,11 +304,12 @@ def write_color(writer, name, value) #:nodoc:
|
|
303
304
|
writer.empty_tag('color', attributes)
|
304
305
|
end
|
305
306
|
|
307
|
+
PERL_TRUE_VALUES = [false, nil, 0, "0", "", [], {}].freeze
|
306
308
|
#
|
307
309
|
# return perl's boolean result
|
308
310
|
#
|
309
311
|
def ptrue?(value)
|
310
|
-
if
|
312
|
+
if PERL_TRUE_VALUES.include?(value)
|
311
313
|
false
|
312
314
|
else
|
313
315
|
true
|
@@ -586,7 +588,7 @@ def process_workbook_options(*params)
|
|
586
588
|
when 0
|
587
589
|
[{}, {}]
|
588
590
|
when 1 # one hash
|
589
|
-
options_keys = [:tempdir, :date_1904, :optimization, :excel2003_style]
|
591
|
+
options_keys = [:tempdir, :date_1904, :optimization, :excel2003_style, :strings_to_urls]
|
590
592
|
|
591
593
|
hash = params.first
|
592
594
|
options = hash.reject{|k,v| !options_keys.include?(k)}
|
data/lib/write_xlsx/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
WriteXLSX_VERSION = "0.85.
|
1
|
+
WriteXLSX_VERSION = "0.85.8"
|
data/lib/write_xlsx/workbook.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
+
# frozen_string_literal: true
|
2
3
|
require 'write_xlsx/package/xml_writer_simple'
|
3
4
|
require 'write_xlsx/package/packager'
|
4
5
|
require 'write_xlsx/sheets'
|
@@ -47,6 +48,7 @@ class Workbook
|
|
47
48
|
attr_reader :shared_strings # :nodoc:
|
48
49
|
attr_reader :vba_project # :nodoc:
|
49
50
|
attr_reader :excel2003_style # :nodoc:
|
51
|
+
attr_reader :strings_to_urls # :nodoc:
|
50
52
|
#
|
51
53
|
# A new Excel workbook is created using the +new+ constructor
|
52
54
|
# which accepts either a filename or an IO object as a parameter.
|
@@ -123,6 +125,7 @@ def initialize(file, *option_params)
|
|
123
125
|
@table_count = 0
|
124
126
|
@image_types = {}
|
125
127
|
@images = []
|
128
|
+
@strings_to_urls = (options[:strings_to_urls].nil? || options[:strings_to_urls]) ? true : false
|
126
129
|
|
127
130
|
# Structures for the shared strings data.
|
128
131
|
@shared_strings = Package::SharedStrings.new
|
@@ -970,8 +973,9 @@ def date_1904? #:nodoc:
|
|
970
973
|
# Add a string to the shared string table, if it isn't already there, and
|
971
974
|
# return the string index.
|
972
975
|
#
|
973
|
-
|
974
|
-
|
976
|
+
EMPTY_HASH = {}.freeze
|
977
|
+
def shared_string_index(str) #:nodoc:
|
978
|
+
@shared_strings.index(str, EMPTY_HASH)
|
975
979
|
end
|
976
980
|
|
977
981
|
def str_unique # :nodoc:
|
data/lib/write_xlsx/worksheet.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
+
# frozen_string_literal: true
|
2
3
|
require 'write_xlsx/package/xml_writer_simple'
|
3
4
|
require 'write_xlsx/package/button'
|
4
5
|
require 'write_xlsx/colors'
|
@@ -1783,15 +1784,6 @@ def write(*args)
|
|
1783
1784
|
write_number(*args)
|
1784
1785
|
elsif token =~ /^\d+$/
|
1785
1786
|
write_number(*args)
|
1786
|
-
# Match http, https or ftp URL
|
1787
|
-
elsif token =~ %r|\A[fh]tt?ps?://|
|
1788
|
-
write_url(*args)
|
1789
|
-
# Match mailto:
|
1790
|
-
elsif token =~ %r|\Amailto:|
|
1791
|
-
write_url(*args)
|
1792
|
-
# Match internal or external sheet link
|
1793
|
-
elsif token =~ %r!\A(?:in|ex)ternal:!
|
1794
|
-
write_url(*args)
|
1795
1787
|
# Match formula
|
1796
1788
|
elsif token =~ /^=/
|
1797
1789
|
write_formula(*args)
|
@@ -1802,6 +1794,19 @@ def write(*args)
|
|
1802
1794
|
elsif token == ''
|
1803
1795
|
row_col_args.delete_at(2) # remove the empty string from the parameter list
|
1804
1796
|
write_blank(*row_col_args)
|
1797
|
+
elsif @workbook.strings_to_urls
|
1798
|
+
# Match http, https or ftp URL
|
1799
|
+
if token =~ %r|\A[fh]tt?ps?://|
|
1800
|
+
write_url(*args)
|
1801
|
+
# Match mailto:
|
1802
|
+
elsif token =~ %r|\Amailto:|
|
1803
|
+
write_url(*args)
|
1804
|
+
# Match internal or external sheet link
|
1805
|
+
elsif token =~ %r!\A(?:in|ex)ternal:!
|
1806
|
+
write_url(*args)
|
1807
|
+
else
|
1808
|
+
write_string(*args)
|
1809
|
+
end
|
1805
1810
|
else
|
1806
1811
|
write_string(*args)
|
1807
1812
|
end
|
@@ -2184,7 +2189,7 @@ def write_comment(*args)
|
|
2184
2189
|
def write_number(*args)
|
2185
2190
|
# Check for a cell reference in A1 notation and substitute row and column
|
2186
2191
|
row, col, num, xf = row_col_notation(args)
|
2187
|
-
raise WriteXLSXInsufficientArgumentError if
|
2192
|
+
raise WriteXLSXInsufficientArgumentError if row.nil? || col.nil? || num.nil?
|
2188
2193
|
|
2189
2194
|
# Check that row and col are valid and store max and min values
|
2190
2195
|
check_dimensions(row, col)
|
@@ -2226,13 +2231,13 @@ def write_string(*args)
|
|
2226
2231
|
# Check for a cell reference in A1 notation and substitute row and column
|
2227
2232
|
row, col, str, xf = row_col_notation(args)
|
2228
2233
|
str &&= str.to_s
|
2229
|
-
raise WriteXLSXInsufficientArgumentError if
|
2234
|
+
raise WriteXLSXInsufficientArgumentError if row.nil? || col.nil? || str.nil?
|
2230
2235
|
|
2231
2236
|
# Check that row and col are valid and store max and min values
|
2232
2237
|
check_dimensions(row, col)
|
2233
2238
|
store_row_col_max_min_values(row, col)
|
2234
2239
|
|
2235
|
-
index = shared_string_index(str[0, STR_MAX])
|
2240
|
+
index = shared_string_index(str.length > STR_MAX ? str[0, STR_MAX] : str)
|
2236
2241
|
|
2237
2242
|
store_data_to_table(StringCellData.new(self, row, col, index, xf))
|
2238
2243
|
end
|
@@ -5845,10 +5850,11 @@ def prepare_vml_objects(vml_data_id, vml_shape_id, vml_drawing_id, comment_id)
|
|
5845
5850
|
|
5846
5851
|
# The VML o:idmap data id contains a comma separated range when there is
|
5847
5852
|
# more than one 1024 block of comments, like this: data="1,2".
|
5853
|
+
data = "#{vml_data_id}"
|
5848
5854
|
(1 .. num_comments_block).each do |i|
|
5849
|
-
|
5855
|
+
data += ",#{vml_data_id + i}"
|
5850
5856
|
end
|
5851
|
-
@vml_data_id =
|
5857
|
+
@vml_data_id = data
|
5852
5858
|
@vml_shape_id = vml_shape_id
|
5853
5859
|
end
|
5854
5860
|
|
@@ -7505,8 +7511,8 @@ def calc_spans(data, row_num, span_min, span_max)
|
|
7505
7511
|
# Add a string to the shared string table, if it isn't already there, and
|
7506
7512
|
# return the string index.
|
7507
7513
|
#
|
7508
|
-
def shared_string_index(str
|
7509
|
-
@workbook.shared_string_index(str
|
7514
|
+
def shared_string_index(str) #:nodoc:
|
7515
|
+
@workbook.shared_string_index(str)
|
7510
7516
|
end
|
7511
7517
|
|
7512
7518
|
#
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
module Writexlsx
|
4
5
|
class Worksheet
|
@@ -63,9 +64,10 @@ def data
|
|
63
64
|
{ :sst_id => token }
|
64
65
|
end
|
65
66
|
|
67
|
+
TYPE_STR_ATTRS = ['t', 's'].freeze
|
66
68
|
def write_cell
|
67
69
|
attributes = cell_attributes
|
68
|
-
attributes <<
|
70
|
+
attributes << TYPE_STR_ATTRS
|
69
71
|
@worksheet.writer.tag_elements('c', attributes) do
|
70
72
|
@worksheet.write_cell_value(token)
|
71
73
|
end
|
@@ -24,7 +24,7 @@ def initialize(url, str, tip)
|
|
24
24
|
str ||= url.dup
|
25
25
|
|
26
26
|
# Strip the mailto header.
|
27
|
-
str.sub
|
27
|
+
normalized_str = str.sub(/^mailto:/, '')
|
28
28
|
|
29
29
|
# Escape URL unless it looks already escaped.
|
30
30
|
url = escape_url(url)
|
@@ -35,7 +35,7 @@ def initialize(url, str, tip)
|
|
35
35
|
end
|
36
36
|
|
37
37
|
@url = url
|
38
|
-
@str =
|
38
|
+
@str = normalized_str
|
39
39
|
@url_str = nil
|
40
40
|
@tip = tip
|
41
41
|
end
|
data/test/helper.rb
CHANGED
@@ -13,6 +13,9 @@
|
|
13
13
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
14
14
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
15
15
|
require 'write_xlsx'
|
16
|
+
require 'stringio'
|
17
|
+
require 'tempfile'
|
18
|
+
|
16
19
|
|
17
20
|
class Writexlsx::Workbook
|
18
21
|
#
|
@@ -28,6 +31,11 @@ def setup_dir_var
|
|
28
31
|
@test_dir = File.dirname(__FILE__)
|
29
32
|
@perl_output = File.join(@test_dir, 'perl_output')
|
30
33
|
@regression_output = File.join(@test_dir, 'regression', 'xlsx_files')
|
34
|
+
@io = StringIO.new
|
35
|
+
end
|
36
|
+
|
37
|
+
def expected_xlsx
|
38
|
+
File.join(@regression_output, @xlsx)
|
31
39
|
end
|
32
40
|
|
33
41
|
def expected_to_array(lines)
|
@@ -68,6 +76,18 @@ def entrys(xlsx)
|
|
68
76
|
result
|
69
77
|
end
|
70
78
|
|
79
|
+
def compare_for_regression(ignore_members = nil, ignore_elements = nil)
|
80
|
+
store_to_tempfile
|
81
|
+
compare_xlsx(expected_xlsx, @tempfile.path, ignore_members, ignore_elements, true)
|
82
|
+
end
|
83
|
+
|
84
|
+
def store_to_tempfile
|
85
|
+
@tempfile = Tempfile.open(@xlsx)
|
86
|
+
@tempfile.binmode
|
87
|
+
@tempfile.write(@io.string)
|
88
|
+
@tempfile.close
|
89
|
+
end
|
90
|
+
|
71
91
|
def compare_xlsx_for_regression(exp_filename, got_filename, ignore_members = nil, ignore_elements = nil)
|
72
92
|
compare_xlsx(exp_filename, got_filename, ignore_members, ignore_elements, true)
|
73
93
|
end
|
@@ -12,7 +12,7 @@ def teardown
|
|
12
12
|
|
13
13
|
def test_vml04
|
14
14
|
@xlsx = 'vml04.xlsx'
|
15
|
-
workbook = WriteXLSX.new(@
|
15
|
+
workbook = WriteXLSX.new(@io)
|
16
16
|
worksheet1 = workbook.add_worksheet
|
17
17
|
worksheet2 = workbook.add_worksheet
|
18
18
|
worksheet3 = workbook.add_worksheet
|
@@ -36,6 +36,6 @@ def test_vml04
|
|
36
36
|
worksheet3.insert_button('E8', {})
|
37
37
|
|
38
38
|
workbook.close
|
39
|
-
|
39
|
+
compare_for_regression
|
40
40
|
end
|
41
41
|
end
|
@@ -7,12 +7,12 @@ def setup
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def teardown
|
10
|
-
|
10
|
+
@tempfile.close(true)
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_array_formula01
|
14
14
|
@xlsx = 'array_formula01.xlsx'
|
15
|
-
workbook = WriteXLSX.new(@
|
15
|
+
workbook = WriteXLSX.new(@io)
|
16
16
|
worksheet = workbook.add_worksheet
|
17
17
|
|
18
18
|
data = [0, 0, 0]
|
@@ -23,9 +23,9 @@ def test_array_formula01
|
|
23
23
|
worksheet.write_array_formula('A1:A3', '{=SUM(B1:C1*B2:C2)}', nil, 0)
|
24
24
|
|
25
25
|
workbook.close
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
compare_for_regression(
|
27
|
+
[ 'xl/calcChain.xml', '[Content_Types].xml', 'xl/_rels/workbook.xml.rels' ],
|
28
|
+
{'xl/workbook.xml' => ['<workbookView']}
|
29
|
+
)
|
30
30
|
end
|
31
31
|
end
|
@@ -7,12 +7,12 @@ def setup
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def teardown
|
10
|
-
|
10
|
+
@tempfile.close(true)
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_array_formula02
|
14
14
|
@xlsx = 'array_formula02.xlsx'
|
15
|
-
workbook = WriteXLSX.new(@
|
15
|
+
workbook = WriteXLSX.new(@io)
|
16
16
|
worksheet = workbook.add_worksheet
|
17
17
|
format = workbook.add_format(:bold => 1)
|
18
18
|
|
@@ -24,9 +24,9 @@ def test_array_formula02
|
|
24
24
|
worksheet.write_array_formula('A1:A3', '{=SUM(B1:C1*B2:C2)}', format, 0)
|
25
25
|
|
26
26
|
workbook.close
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
compare_for_regression(
|
28
|
+
[ 'xl/calcChain.xml', '[Content_Types].xml', 'xl/_rels/workbook.xml.rels' ],
|
29
|
+
{'xl/workbook.xml' => ['<workbookView']}
|
30
|
+
)
|
31
31
|
end
|
32
32
|
end
|