write_xlsx 1.09.3 → 1.09.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +108 -0
- data/.rubocop_todo.yml +445 -0
- data/Changes +8 -0
- data/Gemfile +2 -0
- data/Rakefile +14 -8
- data/examples/array_formula.rb +2 -2
- data/examples/autofilter.rb +13 -18
- data/examples/chart_area.rb +10 -10
- data/examples/chart_bar.rb +10 -10
- data/examples/chart_column.rb +10 -10
- data/examples/chart_combined.rb +2 -3
- data/examples/chart_data_labels.rb +23 -35
- data/examples/chart_data_table.rb +16 -16
- data/examples/chart_data_tools.rb +36 -42
- data/examples/chart_doughnut.rb +21 -25
- data/examples/chart_gauge.rb +17 -17
- data/examples/chart_line.rb +25 -26
- data/examples/chart_pareto.rb +3 -3
- data/examples/chart_pie.rb +15 -15
- data/examples/chart_radar.rb +30 -30
- data/examples/chart_scatter.rb +10 -10
- data/examples/chart_secondary_axis.rb +9 -9
- data/examples/chart_stock.rb +10 -11
- data/examples/chart_styles.rb +6 -7
- data/examples/colors.rb +26 -29
- data/examples/comments1.rb +1 -0
- data/examples/comments2.rb +85 -114
- data/examples/conditional_format.rb +159 -150
- data/examples/data_validate.rb +135 -122
- data/examples/date_time.rb +29 -29
- data/examples/defined_name.rb +5 -5
- data/examples/demo.rb +10 -12
- data/examples/diag_border.rb +4 -5
- data/examples/formats.rb +93 -105
- data/examples/headers.rb +2 -7
- data/examples/hyperlink1.rb +5 -6
- data/examples/ignore_errors.rb +1 -1
- data/examples/macros.rb +6 -6
- data/examples/merge1.rb +0 -3
- data/examples/merge2.rb +9 -12
- data/examples/merge3.rb +6 -7
- data/examples/merge4.rb +2 -4
- data/examples/merge5.rb +6 -6
- data/examples/merge6.rb +1 -1
- data/examples/outline.rb +8 -16
- data/examples/outline_collapsed.rb +6 -6
- data/examples/panes.rb +15 -15
- data/examples/properties.rb +9 -9
- data/examples/rich_strings.rb +19 -11
- data/examples/shape1.rb +9 -9
- data/examples/shape2.rb +19 -19
- data/examples/shape3.rb +6 -6
- data/examples/shape4.rb +9 -9
- data/examples/shape5.rb +8 -8
- data/examples/shape6.rb +8 -8
- data/examples/shape7.rb +14 -14
- data/examples/shape8.rb +14 -14
- data/examples/shape_all.rb +6 -6
- data/examples/sparklines1.rb +23 -24
- data/examples/sparklines2.rb +151 -151
- data/examples/tables.rb +86 -94
- data/examples/update_range_format_with_params.rb +4 -4
- data/lib/write_xlsx/chart/area.rb +8 -9
- data/lib/write_xlsx/chart/axis.rb +12 -24
- data/lib/write_xlsx/chart/bar.rb +4 -8
- data/lib/write_xlsx/chart/column.rb +3 -4
- data/lib/write_xlsx/chart/doughnut.rb +3 -2
- data/lib/write_xlsx/chart/line.rb +16 -17
- data/lib/write_xlsx/chart/pie.rb +13 -13
- data/lib/write_xlsx/chart/radar.rb +8 -9
- data/lib/write_xlsx/chart/scatter.rb +20 -23
- data/lib/write_xlsx/chart/series.rb +32 -45
- data/lib/write_xlsx/chart/stock.rb +29 -24
- data/lib/write_xlsx/chart.rb +183 -217
- data/lib/write_xlsx/chartsheet.rb +22 -31
- data/lib/write_xlsx/col_name.rb +2 -1
- data/lib/write_xlsx/colors.rb +1 -1
- data/lib/write_xlsx/compatibility.rb +14 -15
- data/lib/write_xlsx/drawing.rb +54 -55
- data/lib/write_xlsx/format.rb +52 -59
- data/lib/write_xlsx/formats.rb +1 -0
- data/lib/write_xlsx/gradient.rb +5 -9
- data/lib/write_xlsx/package/app.rb +12 -16
- data/lib/write_xlsx/package/button.rb +3 -3
- data/lib/write_xlsx/package/comments.rb +31 -36
- data/lib/write_xlsx/package/conditional_format.rb +90 -110
- data/lib/write_xlsx/package/content_types.rb +20 -21
- data/lib/write_xlsx/package/core.rb +5 -4
- data/lib/write_xlsx/package/custom.rb +7 -7
- data/lib/write_xlsx/package/metadata.rb +6 -5
- data/lib/write_xlsx/package/packager.rb +36 -22
- data/lib/write_xlsx/package/relationships.rb +1 -1
- data/lib/write_xlsx/package/shared_strings.rb +11 -11
- data/lib/write_xlsx/package/styles.rb +54 -68
- data/lib/write_xlsx/package/table.rb +77 -95
- data/lib/write_xlsx/package/theme.rb +3 -3
- data/lib/write_xlsx/package/vml.rb +24 -31
- data/lib/write_xlsx/package/xml_writer_simple.rb +19 -20
- data/lib/write_xlsx/shape.rb +20 -31
- data/lib/write_xlsx/sheets.rb +37 -46
- data/lib/write_xlsx/sparkline.rb +11 -20
- data/lib/write_xlsx/utility.rb +129 -142
- data/lib/write_xlsx/version.rb +1 -1
- data/lib/write_xlsx/workbook.rb +248 -299
- data/lib/write_xlsx/worksheet/cell_data.rb +41 -17
- data/lib/write_xlsx/worksheet/data_validation.rb +65 -73
- data/lib/write_xlsx/worksheet/hyperlink.rb +10 -16
- data/lib/write_xlsx/worksheet/page_setup.rb +9 -11
- data/lib/write_xlsx/worksheet.rb +435 -540
- data/lib/write_xlsx/zip_file_utils.rb +32 -34
- data/lib/write_xlsx.rb +1 -3
- data/write_xlsx.gemspec +23 -19
- metadata +38 -3883
- data/.gitattributes +0 -1
- data/.gitignore +0 -45
- data/.travis.yml +0 -75
- data/bin/extract_vba.rb +0 -34
- data/test/chart/test_add_series.rb +0 -190
- data/test/chart/test_process_names.rb +0 -27
- data/test/chart/test_write_a_latin.rb +0 -22
- data/test/chart/test_write_auto.rb +0 -15
- data/test/chart/test_write_ax_id.rb +0 -15
- data/test/chart/test_write_ax_pos.rb +0 -15
- data/test/chart/test_write_cross_ax.rb +0 -15
- data/test/chart/test_write_crosses.rb +0 -15
- data/test/chart/test_write_d_lbls.rb +0 -292
- data/test/chart/test_write_format_code.rb +0 -16
- data/test/chart/test_write_idx.rb +0 -15
- data/test/chart/test_write_label_align.rb +0 -15
- data/test/chart/test_write_label_offset.rb +0 -15
- data/test/chart/test_write_lang.rb +0 -15
- data/test/chart/test_write_layout.rb +0 -15
- data/test/chart/test_write_legend.rb +0 -16
- data/test/chart/test_write_legend_pos.rb +0 -23
- data/test/chart/test_write_major_gridlines.rb +0 -15
- data/test/chart/test_write_marker.rb +0 -17
- data/test/chart/test_write_marker_size.rb +0 -15
- data/test/chart/test_write_marker_value.rb +0 -16
- data/test/chart/test_write_num_cache.rb +0 -16
- data/test/chart/test_write_number_format.rb +0 -48
- data/test/chart/test_write_order.rb +0 -15
- data/test/chart/test_write_orientation.rb +0 -15
- data/test/chart/test_write_page_margins.rb +0 -15
- data/test/chart/test_write_page_setup.rb +0 -15
- data/test/chart/test_write_plot_vis_only.rb +0 -15
- data/test/chart/test_write_pt.rb +0 -16
- data/test/chart/test_write_pt_count.rb +0 -16
- data/test/chart/test_write_series_formula.rb +0 -16
- data/test/chart/test_write_style.rb +0 -41
- data/test/chart/test_write_symbol.rb +0 -16
- data/test/chart/test_write_tick_lbl_pos.rb +0 -16
- data/test/chart/test_write_v.rb +0 -16
- data/test/chartsheet/test_chartsheet01.rb +0 -31
- data/test/chartsheet/test_write_sheet_protection.rb +0 -91
- data/test/drawing/test_drawing_chart_01.rb +0 -54
- data/test/drawing/test_drawing_image_01.rb +0 -68
- data/test/drawing/test_drawing_shape_01.rb +0 -71
- data/test/drawing/test_drawing_shape_02.rb +0 -80
- data/test/drawing/test_drawing_shape_03.rb +0 -41
- data/test/drawing/test_drawing_shape_04.rb +0 -105
- data/test/drawing/test_drawing_shape_05.rb +0 -48
- data/test/drawing/test_drawing_shape_06.rb +0 -47
- data/test/drawing/test_drawing_shape_07.rb +0 -52
- data/test/drawing/test_write_a_graphic_frame_locks.rb +0 -18
- data/test/drawing/test_write_c_chart.rb +0 -18
- data/test/drawing/test_write_c_nv_graphic_frame_pr.rb +0 -28
- data/test/drawing/test_write_c_nv_pr.rb +0 -18
- data/test/drawing/test_write_col.rb +0 -18
- data/test/drawing/test_write_col_off.rb +0 -18
- data/test/drawing/test_write_pos.rb +0 -18
- data/test/drawing/test_write_row.rb +0 -18
- data/test/drawing/test_write_row_off.rb +0 -18
- data/test/drawing/test_write_xdr_ext.rb +0 -18
- data/test/drawing/test_write_xfrm_extension.rb +0 -18
- data/test/drawing/test_write_xfrm_offset.rb +0 -18
- data/test/helper.rb +0 -206
- data/test/package/app/test_app01.rb +0 -44
- data/test/package/app/test_app02.rb +0 -46
- data/test/package/app/test_app03.rb +0 -53
- data/test/package/comments/test_comments_01.rb +0 -54
- data/test/package/comments/test_comments_02.rb +0 -54
- data/test/package/content_types/test_content_types.rb +0 -35
- data/test/package/content_types/test_write_default.rb +0 -13
- data/test/package/content_types/test_write_override.rb +0 -13
- data/test/package/core/test_core01.rb +0 -28
- data/test/package/core/test_core02.rb +0 -42
- data/test/package/relationships/test_relationships.rb +0 -28
- data/test/package/relationships/test_sheet_rels.rb +0 -22
- data/test/package/shared_strings/test_shared_strings01.rb +0 -30
- data/test/package/shared_strings/test_shared_strings02.rb +0 -30
- data/test/package/shared_strings/test_write_si.rb +0 -16
- data/test/package/styles/test_styles_01.rb +0 -60
- data/test/package/styles/test_styles_02.rb +0 -95
- data/test/package/styles/test_styles_03.rb +0 -81
- data/test/package/styles/test_styles_04.rb +0 -207
- data/test/package/styles/test_styles_05.rb +0 -141
- data/test/package/styles/test_styles_06.rb +0 -95
- data/test/package/styles/test_styles_07.rb +0 -95
- data/test/package/styles/test_styles_08.rb +0 -100
- data/test/package/styles/test_styles_09.rb +0 -86
- data/test/package/table/test_table01.rb +0 -42
- data/test/package/table/test_table02.rb +0 -44
- data/test/package/table/test_table03.rb +0 -48
- data/test/package/table/test_table04.rb +0 -46
- data/test/package/table/test_table05.rb +0 -46
- data/test/package/table/test_table06.rb +0 -52
- data/test/package/table/test_table07.rb +0 -47
- data/test/package/table/test_table08.rb +0 -53
- data/test/package/table/test_table09.rb +0 -65
- data/test/package/table/test_table10.rb +0 -45
- data/test/package/table/test_table11.rb +0 -60
- data/test/package/table/test_table12.rb +0 -60
- data/test/package/table/test_table13.rb +0 -69
- data/test/package/table/test_write_auto_filter.rb +0 -23
- data/test/package/table/test_write_table_column.rb +0 -22
- data/test/package/table/test_write_table_style_info.rb +0 -26
- data/test/package/vml/test_write_auto_fill.rb +0 -14
- data/test/package/vml/test_write_div.rb +0 -14
- data/test/package/vml/test_write_idmap.rb +0 -14
- data/test/package/vml/test_write_path.rb +0 -30
- data/test/package/vml/test_write_shapelayout.rb +0 -14
- data/test/package/vml/test_write_shapetype.rb +0 -22
- data/test/package/vml/test_write_stroke.rb +0 -14
- data/test/perl_output/a_simple.xlsx +0 -0
- data/test/perl_output/add_vba_project.xlsm +0 -0
- data/test/perl_output/array_formula.xlsx +0 -0
- data/test/perl_output/autofilter.xlsx +0 -0
- data/test/perl_output/background.xlsx +0 -0
- data/test/perl_output/chart_area.xlsx +0 -0
- data/test/perl_output/chart_bar.xlsx +0 -0
- data/test/perl_output/chart_column.xlsx +0 -0
- data/test/perl_output/chart_combined.xlsx +0 -0
- data/test/perl_output/chart_data_labels.xlsx +0 -0
- data/test/perl_output/chart_data_table.xlsx +0 -0
- data/test/perl_output/chart_data_tools.xlsx +0 -0
- data/test/perl_output/chart_doughnut.xlsx +0 -0
- data/test/perl_output/chart_gauge.xlsx +0 -0
- data/test/perl_output/chart_line.xlsx +0 -0
- data/test/perl_output/chart_pareto.xlsx +0 -0
- data/test/perl_output/chart_pie.xlsx +0 -0
- data/test/perl_output/chart_radar.xlsx +0 -0
- data/test/perl_output/chart_scatter.xlsx +0 -0
- data/test/perl_output/chart_scatter06.xlsx +0 -0
- data/test/perl_output/chart_secondary_axis.xlsx +0 -0
- data/test/perl_output/chart_stock.xlsx +0 -0
- data/test/perl_output/comments1.xlsx +0 -0
- data/test/perl_output/comments2.xlsx +0 -0
- data/test/perl_output/conditional_format.xlsx +0 -0
- data/test/perl_output/data_validate.xlsx +0 -0
- data/test/perl_output/date_time.xlsx +0 -0
- data/test/perl_output/defined_name.xlsx +0 -0
- data/test/perl_output/demo.xlsx +0 -0
- data/test/perl_output/diag_border.xlsx +0 -0
- data/test/perl_output/fit_to_pages.xlsx +0 -0
- data/test/perl_output/formats.xlsx +0 -0
- data/test/perl_output/headers.xlsx +0 -0
- data/test/perl_output/hide_first_sheet.xlsx +0 -0
- data/test/perl_output/hide_row_col.xlsx +0 -0
- data/test/perl_output/hide_sheet.xlsx +0 -0
- data/test/perl_output/hyperlink.xlsx +0 -0
- data/test/perl_output/ignore_errors.xlsx +0 -0
- data/test/perl_output/indent.xlsx +0 -0
- data/test/perl_output/keep_leading_zeros.xlsx +0 -0
- data/test/perl_output/merge1.xlsx +0 -0
- data/test/perl_output/merge2.xlsx +0 -0
- data/test/perl_output/merge3.xlsx +0 -0
- data/test/perl_output/merge4.xlsx +0 -0
- data/test/perl_output/merge5.xlsx +0 -0
- data/test/perl_output/merge6.xlsx +0 -0
- data/test/perl_output/multi_line.xlsx +0 -0
- data/test/perl_output/outline.xlsx +0 -0
- data/test/perl_output/outline_collapsed.xlsx +0 -0
- data/test/perl_output/panes.xlsx +0 -0
- data/test/perl_output/print_scale.xlsx +0 -0
- data/test/perl_output/properties.xlsx +0 -0
- data/test/perl_output/protection.xlsx +0 -0
- data/test/perl_output/regions.xlsx +0 -0
- data/test/perl_output/rich_strings.xlsx +0 -0
- data/test/perl_output/right_to_left.xlsx +0 -0
- data/test/perl_output/shape1.xlsx +0 -0
- data/test/perl_output/shape2.xlsx +0 -0
- data/test/perl_output/shape3.xlsx +0 -0
- data/test/perl_output/shape4.xlsx +0 -0
- data/test/perl_output/shape5.xlsx +0 -0
- data/test/perl_output/shape6.xlsx +0 -0
- data/test/perl_output/shape7.xlsx +0 -0
- data/test/perl_output/shape8.xlsx +0 -0
- data/test/perl_output/shape_all.xlsx +0 -0
- data/test/perl_output/sparklines1.xlsx +0 -0
- data/test/perl_output/sparklines2.xlsx +0 -0
- data/test/perl_output/stats.xlsx +0 -0
- data/test/perl_output/stats_ext.xlsx +0 -0
- data/test/perl_output/stocks.xlsx +0 -0
- data/test/perl_output/tab_colors.xlsx +0 -0
- data/test/perl_output/tables.xlsx +0 -0
- data/test/regression/_test_hyperlink31.rb +0 -26
- data/test/regression/disabled_test_vml04.rb +0 -41
- data/test/regression/images/black_150.jpg +0 -0
- data/test/regression/images/black_150.png +0 -0
- data/test/regression/images/black_150e.png +0 -0
- data/test/regression/images/black_300.jpg +0 -0
- data/test/regression/images/black_300.png +0 -0
- data/test/regression/images/black_300e.png +0 -0
- data/test/regression/images/black_72.jpg +0 -0
- data/test/regression/images/black_72.png +0 -0
- data/test/regression/images/black_72e.png +0 -0
- data/test/regression/images/black_96.jpg +0 -0
- data/test/regression/images/black_96.png +0 -0
- data/test/regression/images/blue.jpg +0 -0
- data/test/regression/images/blue.png +0 -0
- data/test/regression/images/grey.jpg +0 -0
- data/test/regression/images/grey.png +0 -0
- data/test/regression/images/happy.jpg +0 -0
- data/test/regression/images/issue32.png +0 -0
- data/test/regression/images/logo.gif +0 -0
- data/test/regression/images/logo.jpg +0 -0
- data/test/regression/images/logo.png +0 -0
- data/test/regression/images/mylogo.png +0 -0
- data/test/regression/images/red.bmp +0 -0
- data/test/regression/images/red.gif +0 -0
- data/test/regression/images/red.jpg +0 -0
- data/test/regression/images/red.png +0 -0
- data/test/regression/images/red2.png +0 -0
- data/test/regression/images/red_208.png +0 -0
- data/test/regression/images/red_64x20.png +0 -0
- data/test/regression/images/train.jpg +0 -0
- data/test/regression/images/yellow.jpg +0 -0
- data/test/regression/images/yellow.png +0 -0
- data/test/regression/images/zero_dpi.jpg +0 -0
- data/test/regression/klt.csv +0 -4
- data/test/regression/test_array_formula01.rb +0 -31
- data/test/regression/test_array_formula02.rb +0 -32
- data/test/regression/test_array_formula03.rb +0 -36
- data/test/regression/test_array_formula04.rb +0 -31
- data/test/regression/test_autofilter00.rb +0 -84
- data/test/regression/test_autofilter01.rb +0 -86
- data/test/regression/test_autofilter02.rb +0 -104
- data/test/regression/test_autofilter03.rb +0 -104
- data/test/regression/test_autofilter04.rb +0 -107
- data/test/regression/test_autofilter05.rb +0 -108
- data/test/regression/test_autofilter06.rb +0 -108
- data/test/regression/test_autofilter07.rb +0 -107
- data/test/regression/test_autofilter08.rb +0 -110
- data/test/regression/test_autofilter09.rb +0 -110
- data/test/regression/test_autofilter10.rb +0 -110
- data/test/regression/test_background01.rb +0 -23
- data/test/regression/test_background02.rb +0 -23
- data/test/regression/test_background03.rb +0 -24
- data/test/regression/test_background04.rb +0 -25
- data/test/regression/test_background05.rb +0 -25
- data/test/regression/test_background06.rb +0 -31
- data/test/regression/test_background07.rb +0 -37
- data/test/regression/test_button01.rb +0 -23
- data/test/regression/test_button02.rb +0 -29
- data/test/regression/test_button03.rb +0 -24
- data/test/regression/test_button04.rb +0 -25
- data/test/regression/test_button05.rb +0 -28
- data/test/regression/test_button06.rb +0 -28
- data/test/regression/test_button07.rb +0 -35
- data/test/regression/test_button08.rb +0 -28
- data/test/regression/test_button13.rb +0 -30
- data/test/regression/test_button14.rb +0 -31
- data/test/regression/test_chart_area01.rb +0 -45
- data/test/regression/test_chart_area02.rb +0 -45
- data/test/regression/test_chart_area03.rb +0 -45
- data/test/regression/test_chart_area04.rb +0 -44
- data/test/regression/test_chart_axis01.rb +0 -45
- data/test/regression/test_chart_axis02.rb +0 -45
- data/test/regression/test_chart_axis03.rb +0 -67
- data/test/regression/test_chart_axis04.rb +0 -52
- data/test/regression/test_chart_axis05.rb +0 -47
- data/test/regression/test_chart_axis06.rb +0 -49
- data/test/regression/test_chart_axis07.rb +0 -53
- data/test/regression/test_chart_axis08.rb +0 -52
- data/test/regression/test_chart_axis09.rb +0 -46
- data/test/regression/test_chart_axis10.rb +0 -52
- data/test/regression/test_chart_axis11.rb +0 -46
- data/test/regression/test_chart_axis12.rb +0 -46
- data/test/regression/test_chart_axis13.rb +0 -52
- data/test/regression/test_chart_axis14.rb +0 -66
- data/test/regression/test_chart_axis15.rb +0 -47
- data/test/regression/test_chart_axis16.rb +0 -69
- data/test/regression/test_chart_axis17.rb +0 -45
- data/test/regression/test_chart_axis18.rb +0 -43
- data/test/regression/test_chart_axis19.rb +0 -45
- data/test/regression/test_chart_axis20.rb +0 -45
- data/test/regression/test_chart_axis21.rb +0 -49
- data/test/regression/test_chart_axis22.rb +0 -44
- data/test/regression/test_chart_axis23.rb +0 -45
- data/test/regression/test_chart_axis24.rb +0 -45
- data/test/regression/test_chart_axis25.rb +0 -44
- data/test/regression/test_chart_axis26.rb +0 -46
- data/test/regression/test_chart_axis27.rb +0 -44
- data/test/regression/test_chart_axis28.rb +0 -44
- data/test/regression/test_chart_axis29.rb +0 -43
- data/test/regression/test_chart_axis30.rb +0 -40
- data/test/regression/test_chart_axis31.rb +0 -40
- data/test/regression/test_chart_axis32.rb +0 -40
- data/test/regression/test_chart_axis33.rb +0 -44
- data/test/regression/test_chart_axis34.rb +0 -43
- data/test/regression/test_chart_axis35.rb +0 -43
- data/test/regression/test_chart_axis36.rb +0 -43
- data/test/regression/test_chart_axis37.rb +0 -45
- data/test/regression/test_chart_axis38.rb +0 -43
- data/test/regression/test_chart_axis39.rb +0 -50
- data/test/regression/test_chart_axis40.rb +0 -44
- data/test/regression/test_chart_axis41.rb +0 -48
- data/test/regression/test_chart_axis42.rb +0 -44
- data/test/regression/test_chart_axis43.rb +0 -44
- data/test/regression/test_chart_axis44.rb +0 -54
- data/test/regression/test_chart_axis45.rb +0 -54
- data/test/regression/test_chart_axis46.rb +0 -54
- data/test/regression/test_chart_axis47.rb +0 -52
- data/test/regression/test_chart_axis48.rb +0 -53
- data/test/regression/test_chart_bar01.rb +0 -44
- data/test/regression/test_chart_bar02.rb +0 -54
- data/test/regression/test_chart_bar03.rb +0 -66
- data/test/regression/test_chart_bar04.rb +0 -69
- data/test/regression/test_chart_bar05.rb +0 -39
- data/test/regression/test_chart_bar06.rb +0 -49
- data/test/regression/test_chart_bar07.rb +0 -53
- data/test/regression/test_chart_bar08.rb +0 -43
- data/test/regression/test_chart_bar09.rb +0 -42
- data/test/regression/test_chart_bar10.rb +0 -46
- data/test/regression/test_chart_bar11.rb +0 -72
- data/test/regression/test_chart_bar12.rb +0 -38
- data/test/regression/test_chart_bar13.rb +0 -48
- data/test/regression/test_chart_bar14.rb +0 -64
- data/test/regression/test_chart_bar15.rb +0 -51
- data/test/regression/test_chart_bar16.rb +0 -49
- data/test/regression/test_chart_bar17.rb +0 -45
- data/test/regression/test_chart_bar18.rb +0 -56
- data/test/regression/test_chart_bar19.rb +0 -48
- data/test/regression/test_chart_bar20.rb +0 -45
- data/test/regression/test_chart_bar21.rb +0 -49
- data/test/regression/test_chart_bar22.rb +0 -66
- data/test/regression/test_chart_bar23.rb +0 -60
- data/test/regression/test_chart_bar24.rb +0 -44
- data/test/regression/test_chart_blank01.rb +0 -41
- data/test/regression/test_chart_blank02.rb +0 -41
- data/test/regression/test_chart_blank03.rb +0 -41
- data/test/regression/test_chart_blank04.rb +0 -41
- data/test/regression/test_chart_blank05.rb +0 -44
- data/test/regression/test_chart_blank06.rb +0 -41
- data/test/regression/test_chart_chartarea01.rb +0 -52
- data/test/regression/test_chart_chartarea02.rb +0 -52
- data/test/regression/test_chart_chartarea03.rb +0 -55
- data/test/regression/test_chart_chartarea04.rb +0 -71
- data/test/regression/test_chart_chartarea05.rb +0 -49
- data/test/regression/test_chart_chartarea06.rb +0 -49
- data/test/regression/test_chart_clustered01.rb +0 -65
- data/test/regression/test_chart_column01.rb +0 -39
- data/test/regression/test_chart_column02.rb +0 -44
- data/test/regression/test_chart_column03.rb +0 -44
- data/test/regression/test_chart_column04.rb +0 -44
- data/test/regression/test_chart_column05.rb +0 -39
- data/test/regression/test_chart_column06.rb +0 -45
- data/test/regression/test_chart_column07.rb +0 -40
- data/test/regression/test_chart_column08.rb +0 -42
- data/test/regression/test_chart_column09.rb +0 -39
- data/test/regression/test_chart_column10.rb +0 -39
- data/test/regression/test_chart_column11.rb +0 -41
- data/test/regression/test_chart_column12.rb +0 -37
- data/test/regression/test_chart_combined01.rb +0 -37
- data/test/regression/test_chart_combined02.rb +0 -43
- data/test/regression/test_chart_combined03.rb +0 -45
- data/test/regression/test_chart_combined04.rb +0 -47
- data/test/regression/test_chart_combined05.rb +0 -49
- data/test/regression/test_chart_combined06.rb +0 -49
- data/test/regression/test_chart_combined07.rb +0 -53
- data/test/regression/test_chart_combined08.rb +0 -65
- data/test/regression/test_chart_combined09.rb +0 -50
- data/test/regression/test_chart_combined10.rb +0 -43
- data/test/regression/test_chart_combined11.rb +0 -63
- data/test/regression/test_chart_crossing01.rb +0 -49
- data/test/regression/test_chart_crossing02.rb +0 -47
- data/test/regression/test_chart_crossing03.rb +0 -52
- data/test/regression/test_chart_crossing04.rb +0 -52
- data/test/regression/test_chart_crossing05.rb +0 -46
- data/test/regression/test_chart_crossing06.rb +0 -46
- data/test/regression/test_chart_data_labels01.rb +0 -47
- data/test/regression/test_chart_data_labels02.rb +0 -47
- data/test/regression/test_chart_data_labels03.rb +0 -47
- data/test/regression/test_chart_data_labels04.rb +0 -47
- data/test/regression/test_chart_data_labels05.rb +0 -50
- data/test/regression/test_chart_data_labels06.rb +0 -50
- data/test/regression/test_chart_data_labels07.rb +0 -40
- data/test/regression/test_chart_data_labels08.rb +0 -46
- data/test/regression/test_chart_data_labels09.rb +0 -47
- data/test/regression/test_chart_data_labels10.rb +0 -47
- data/test/regression/test_chart_data_labels11.rb +0 -37
- data/test/regression/test_chart_data_labels12.rb +0 -37
- data/test/regression/test_chart_data_labels13.rb +0 -37
- data/test/regression/test_chart_data_labels14.rb +0 -37
- data/test/regression/test_chart_data_labels15.rb +0 -37
- data/test/regression/test_chart_data_labels16.rb +0 -40
- data/test/regression/test_chart_data_labels17.rb +0 -63
- data/test/regression/test_chart_data_labels18.rb +0 -53
- data/test/regression/test_chart_data_labels19.rb +0 -53
- data/test/regression/test_chart_data_labels20.rb +0 -44
- data/test/regression/test_chart_data_labels21.rb +0 -48
- data/test/regression/test_chart_data_labels22.rb +0 -47
- data/test/regression/test_chart_data_labels23.rb +0 -50
- data/test/regression/test_chart_data_labels24.rb +0 -50
- data/test/regression/test_chart_data_labels25.rb +0 -61
- data/test/regression/test_chart_data_labels26.rb +0 -44
- data/test/regression/test_chart_data_labels27.rb +0 -44
- data/test/regression/test_chart_data_labels28.rb +0 -52
- data/test/regression/test_chart_data_labels29.rb +0 -43
- data/test/regression/test_chart_data_labels30.rb +0 -46
- data/test/regression/test_chart_data_labels31.rb +0 -49
- data/test/regression/test_chart_data_labels32.rb +0 -54
- data/test/regression/test_chart_data_labels33.rb +0 -52
- data/test/regression/test_chart_data_labels34.rb +0 -54
- data/test/regression/test_chart_data_labels35.rb +0 -46
- data/test/regression/test_chart_data_labels36.rb +0 -54
- data/test/regression/test_chart_data_labels37.rb +0 -51
- data/test/regression/test_chart_data_labels38.rb +0 -54
- data/test/regression/test_chart_data_labels39.rb +0 -53
- data/test/regression/test_chart_data_labels40.rb +0 -53
- data/test/regression/test_chart_data_labels41.rb +0 -54
- data/test/regression/test_chart_data_labels42.rb +0 -58
- data/test/regression/test_chart_data_labels43.rb +0 -58
- data/test/regression/test_chart_data_labels44.rb +0 -56
- data/test/regression/test_chart_data_labels45.rb +0 -57
- data/test/regression/test_chart_data_labels46.rb +0 -61
- data/test/regression/test_chart_data_labels47.rb +0 -61
- data/test/regression/test_chart_data_labels48.rb +0 -55
- data/test/regression/test_chart_data_labels49.rb +0 -55
- data/test/regression/test_chart_data_labels50.rb +0 -57
- data/test/regression/test_chart_date01.rb +0 -53
- data/test/regression/test_chart_date02.rb +0 -59
- data/test/regression/test_chart_date03.rb +0 -59
- data/test/regression/test_chart_date04.rb +0 -61
- data/test/regression/test_chart_date05.rb +0 -57
- data/test/regression/test_chart_display_units01.rb +0 -35
- data/test/regression/test_chart_display_units02.rb +0 -36
- data/test/regression/test_chart_display_units03.rb +0 -36
- data/test/regression/test_chart_display_units04.rb +0 -36
- data/test/regression/test_chart_display_units05.rb +0 -36
- data/test/regression/test_chart_display_units06.rb +0 -36
- data/test/regression/test_chart_display_units07.rb +0 -36
- data/test/regression/test_chart_display_units08.rb +0 -36
- data/test/regression/test_chart_display_units09.rb +0 -36
- data/test/regression/test_chart_display_units10.rb +0 -36
- data/test/regression/test_chart_display_units11.rb +0 -36
- data/test/regression/test_chart_display_units12.rb +0 -41
- data/test/regression/test_chart_doughnut01.rb +0 -39
- data/test/regression/test_chart_doughnut02.rb +0 -38
- data/test/regression/test_chart_doughnut03.rb +0 -38
- data/test/regression/test_chart_doughnut04.rb +0 -38
- data/test/regression/test_chart_doughnut05.rb +0 -38
- data/test/regression/test_chart_doughnut06.rb +0 -34
- data/test/regression/test_chart_doughnut07.rb +0 -37
- data/test/regression/test_chart_drop_lines01.rb +0 -46
- data/test/regression/test_chart_drop_lines02.rb +0 -51
- data/test/regression/test_chart_drop_lines03.rb +0 -46
- data/test/regression/test_chart_drop_lines04.rb +0 -64
- data/test/regression/test_chart_errorbars01.rb +0 -46
- data/test/regression/test_chart_errorbars02.rb +0 -56
- data/test/regression/test_chart_errorbars03.rb +0 -52
- data/test/regression/test_chart_errorbars04.rb +0 -47
- data/test/regression/test_chart_errorbars05.rb +0 -46
- data/test/regression/test_chart_errorbars06.rb +0 -46
- data/test/regression/test_chart_errorbars07.rb +0 -65
- data/test/regression/test_chart_errorbars08.rb +0 -50
- data/test/regression/test_chart_errorbars09.rb +0 -50
- data/test/regression/test_chart_errorbars10.rb +0 -52
- data/test/regression/test_chart_font01.rb +0 -54
- data/test/regression/test_chart_font02.rb +0 -56
- data/test/regression/test_chart_font03.rb +0 -59
- data/test/regression/test_chart_font04.rb +0 -57
- data/test/regression/test_chart_font05.rb +0 -54
- data/test/regression/test_chart_font06.rb +0 -84
- data/test/regression/test_chart_font07.rb +0 -44
- data/test/regression/test_chart_font08.rb +0 -44
- data/test/regression/test_chart_font09.rb +0 -40
- data/test/regression/test_chart_format01.rb +0 -44
- data/test/regression/test_chart_format02.rb +0 -45
- data/test/regression/test_chart_format03.rb +0 -46
- data/test/regression/test_chart_format04.rb +0 -45
- data/test/regression/test_chart_format05.rb +0 -45
- data/test/regression/test_chart_format06.rb +0 -50
- data/test/regression/test_chart_format07.rb +0 -55
- data/test/regression/test_chart_format08.rb +0 -50
- data/test/regression/test_chart_format09.rb +0 -54
- data/test/regression/test_chart_format10.rb +0 -57
- data/test/regression/test_chart_format11.rb +0 -61
- data/test/regression/test_chart_format12.rb +0 -58
- data/test/regression/test_chart_format13.rb +0 -50
- data/test/regression/test_chart_format14.rb +0 -54
- data/test/regression/test_chart_format15.rb +0 -52
- data/test/regression/test_chart_format16.rb +0 -55
- data/test/regression/test_chart_format17.rb +0 -39
- data/test/regression/test_chart_format18.rb +0 -43
- data/test/regression/test_chart_format19.rb +0 -46
- data/test/regression/test_chart_format20.rb +0 -54
- data/test/regression/test_chart_format21.rb +0 -47
- data/test/regression/test_chart_format22.rb +0 -47
- data/test/regression/test_chart_format23.rb +0 -47
- data/test/regression/test_chart_format24.rb +0 -52
- data/test/regression/test_chart_format25.rb +0 -46
- data/test/regression/test_chart_format26.rb +0 -48
- data/test/regression/test_chart_format27.rb +0 -58
- data/test/regression/test_chart_format28.rb +0 -52
- data/test/regression/test_chart_format29.rb +0 -59
- data/test/regression/test_chart_format30.rb +0 -53
- data/test/regression/test_chart_format31.rb +0 -60
- data/test/regression/test_chart_gap01.rb +0 -47
- data/test/regression/test_chart_gap02.rb +0 -47
- data/test/regression/test_chart_gap03.rb +0 -47
- data/test/regression/test_chart_gap04.rb +0 -54
- data/test/regression/test_chart_gap05.rb +0 -56
- data/test/regression/test_chart_gradient01.rb +0 -43
- data/test/regression/test_chart_gradient02.rb +0 -43
- data/test/regression/test_chart_gradient03.rb +0 -46
- data/test/regression/test_chart_gradient04.rb +0 -46
- data/test/regression/test_chart_gradient05.rb +0 -46
- data/test/regression/test_chart_gradient06.rb +0 -46
- data/test/regression/test_chart_gradient07.rb +0 -44
- data/test/regression/test_chart_gradient08.rb +0 -43
- data/test/regression/test_chart_gradient09.rb +0 -43
- data/test/regression/test_chart_gradient10.rb +0 -43
- data/test/regression/test_chart_gradient11.rb +0 -43
- data/test/regression/test_chart_gradient12.rb +0 -46
- data/test/regression/test_chart_gradient13.rb +0 -46
- data/test/regression/test_chart_gridlines01.rb +0 -42
- data/test/regression/test_chart_gridlines02.rb +0 -47
- data/test/regression/test_chart_gridlines03.rb +0 -63
- data/test/regression/test_chart_gridlines04.rb +0 -44
- data/test/regression/test_chart_gridlines05.rb +0 -48
- data/test/regression/test_chart_gridlines06.rb +0 -53
- data/test/regression/test_chart_gridlines07.rb +0 -69
- data/test/regression/test_chart_gridlines08.rb +0 -45
- data/test/regression/test_chart_gridlines09.rb +0 -67
- data/test/regression/test_chart_layout01.rb +0 -48
- data/test/regression/test_chart_layout02.rb +0 -48
- data/test/regression/test_chart_layout03.rb +0 -49
- data/test/regression/test_chart_layout04.rb +0 -47
- data/test/regression/test_chart_layout05.rb +0 -64
- data/test/regression/test_chart_layout06.rb +0 -48
- data/test/regression/test_chart_layout07.rb +0 -48
- data/test/regression/test_chart_layout08.rb +0 -49
- data/test/regression/test_chart_legend01.rb +0 -41
- data/test/regression/test_chart_legend02.rb +0 -41
- data/test/regression/test_chart_legend03.rb +0 -41
- data/test/regression/test_chart_legend04.rb +0 -41
- data/test/regression/test_chart_legend05.rb +0 -41
- data/test/regression/test_chart_legend06.rb +0 -41
- data/test/regression/test_chart_legend07.rb +0 -38
- data/test/regression/test_chart_line01.rb +0 -39
- data/test/regression/test_chart_line02.rb +0 -44
- data/test/regression/test_chart_line03.rb +0 -39
- data/test/regression/test_chart_line04.rb +0 -39
- data/test/regression/test_chart_line05.rb +0 -43
- data/test/regression/test_chart_line06.rb +0 -43
- data/test/regression/test_chart_name01.rb +0 -43
- data/test/regression/test_chart_name02.rb +0 -55
- data/test/regression/test_chart_name03.rb +0 -55
- data/test/regression/test_chart_order01.rb +0 -54
- data/test/regression/test_chart_order02.rb +0 -54
- data/test/regression/test_chart_order03.rb +0 -60
- data/test/regression/test_chart_pattern01.rb +0 -49
- data/test/regression/test_chart_pattern02.rb +0 -106
- data/test/regression/test_chart_pattern03.rb +0 -105
- data/test/regression/test_chart_pattern04.rb +0 -105
- data/test/regression/test_chart_pattern05.rb +0 -105
- data/test/regression/test_chart_pattern06.rb +0 -105
- data/test/regression/test_chart_pattern07.rb +0 -105
- data/test/regression/test_chart_pattern08.rb +0 -105
- data/test/regression/test_chart_pattern09.rb +0 -57
- data/test/regression/test_chart_pattern10.rb +0 -57
- data/test/regression/test_chart_pie01.rb +0 -36
- data/test/regression/test_chart_pie02.rb +0 -38
- data/test/regression/test_chart_pie03.rb +0 -38
- data/test/regression/test_chart_pie04.rb +0 -38
- data/test/regression/test_chart_pie05.rb +0 -38
- data/test/regression/test_chart_points01.rb +0 -37
- data/test/regression/test_chart_points02.rb +0 -40
- data/test/regression/test_chart_points03.rb +0 -42
- data/test/regression/test_chart_points04.rb +0 -52
- data/test/regression/test_chart_points05.rb +0 -49
- data/test/regression/test_chart_points06.rb +0 -49
- data/test/regression/test_chart_radar01.rb +0 -39
- data/test/regression/test_chart_radar02.rb +0 -43
- data/test/regression/test_chart_radar03.rb +0 -43
- data/test/regression/test_chart_scatter01.rb +0 -45
- data/test/regression/test_chart_scatter02.rb +0 -49
- data/test/regression/test_chart_scatter03.rb +0 -49
- data/test/regression/test_chart_scatter04.rb +0 -49
- data/test/regression/test_chart_scatter05.rb +0 -49
- data/test/regression/test_chart_scatter06.rb +0 -51
- data/test/regression/test_chart_scatter07.rb +0 -59
- data/test/regression/test_chart_scatter08.rb +0 -57
- data/test/regression/test_chart_scatter09.rb +0 -59
- data/test/regression/test_chart_scatter10.rb +0 -59
- data/test/regression/test_chart_scatter11.rb +0 -59
- data/test/regression/test_chart_scatter12.rb +0 -51
- data/test/regression/test_chart_scatter13.rb +0 -51
- data/test/regression/test_chart_scatter14.rb +0 -52
- data/test/regression/test_chart_scatter15.rb +0 -44
- data/test/regression/test_chart_size01.rb +0 -41
- data/test/regression/test_chart_size02.rb +0 -41
- data/test/regression/test_chart_size03.rb +0 -42
- data/test/regression/test_chart_size04.rb +0 -41
- data/test/regression/test_chart_size05.rb +0 -39
- data/test/regression/test_chart_sparse01.rb +0 -51
- data/test/regression/test_chart_stock01.rb +0 -65
- data/test/regression/test_chart_stock02.rb +0 -71
- data/test/regression/test_chart_str01.rb +0 -43
- data/test/regression/test_chart_str02.rb +0 -47
- data/test/regression/test_chart_table01.rb +0 -42
- data/test/regression/test_chart_table02.rb +0 -47
- data/test/regression/test_chart_table03.rb +0 -56
- data/test/regression/test_chart_title01.rb +0 -39
- data/test/regression/test_chart_title02.rb +0 -39
- data/test/regression/test_chartsheet01.rb +0 -41
- data/test/regression/test_chartsheet02.rb +0 -48
- data/test/regression/test_chartsheet03.rb +0 -46
- data/test/regression/test_chartsheet04.rb +0 -46
- data/test/regression/test_chartsheet05.rb +0 -46
- data/test/regression/test_chartsheet06.rb +0 -42
- data/test/regression/test_chartsheet07.rb +0 -55
- data/test/regression/test_chartsheet08.rb +0 -59
- data/test/regression/test_chartsheet09.rb +0 -50
- data/test/regression/test_comment01.rb +0 -27
- data/test/regression/test_comment02.rb +0 -28
- data/test/regression/test_comment03.rb +0 -31
- data/test/regression/test_comment04.rb +0 -36
- data/test/regression/test_comment06.rb +0 -33
- data/test/regression/test_comment07.rb +0 -35
- data/test/regression/test_comment08.rb +0 -35
- data/test/regression/test_comment09.rb +0 -31
- data/test/regression/test_comment10.rb +0 -30
- data/test/regression/test_comment11.rb +0 -31
- data/test/regression/test_comment12.rb +0 -30
- data/test/regression/test_comment13.rb +0 -36
- data/test/regression/test_comment14.rb +0 -29
- data/test/regression/test_comment15.rb +0 -28
- data/test/regression/test_comment16.rb +0 -34
- data/test/regression/test_cond_format01.rb +0 -45
- data/test/regression/test_cond_format02.rb +0 -40
- data/test/regression/test_cond_format03.rb +0 -51
- data/test/regression/test_cond_format04.rb +0 -50
- data/test/regression/test_cond_format05.rb +0 -40
- data/test/regression/test_cond_format06.rb +0 -44
- data/test/regression/test_cond_format07.rb +0 -61
- data/test/regression/test_cond_format08.rb +0 -45
- data/test/regression/test_cond_format10.rb +0 -42
- data/test/regression/test_cond_format11.rb +0 -46
- data/test/regression/test_cond_format12.rb +0 -46
- data/test/regression/test_cond_format13.rb +0 -52
- data/test/regression/test_cond_format14.rb +0 -42
- data/test/regression/test_cond_format15.rb +0 -53
- data/test/regression/test_cond_format16.rb +0 -53
- data/test/regression/test_cond_format17.rb +0 -37
- data/test/regression/test_cond_format18.rb +0 -136
- data/test/regression/test_cond_format19.rb +0 -64
- data/test/regression/test_cond_format20.rb +0 -43
- data/test/regression/test_custom_colors01.rb +0 -33
- data/test/regression/test_data_validation01.rb +0 -22
- data/test/regression/test_data_validation02.rb +0 -27
- data/test/regression/test_data_validation03.rb +0 -44
- data/test/regression/test_data_validation04.rb +0 -37
- data/test/regression/test_data_validation05.rb +0 -36
- data/test/regression/test_data_validation08.rb +0 -24
- data/test/regression/test_date_1904_01.rb +0 -31
- data/test/regression/test_date_1904_02.rb +0 -34
- data/test/regression/test_date_examples01.rb +0 -48
- data/test/regression/test_default_format01.rb +0 -22
- data/test/regression/test_default_row01.rb +0 -26
- data/test/regression/test_default_row02.rb +0 -28
- data/test/regression/test_default_row03.rb +0 -28
- data/test/regression/test_default_row04.rb +0 -31
- data/test/regression/test_default_row05.rb +0 -32
- data/test/regression/test_defined_name01.rb +0 -45
- data/test/regression/test_defined_name02.rb +0 -30
- data/test/regression/test_defined_name03.rb +0 -30
- data/test/regression/test_defined_name04.rb +0 -50
- data/test/regression/test_dynamic_array01.rb +0 -25
- data/test/regression/test_escapes01.rb +0 -35
- data/test/regression/test_escapes02.rb +0 -32
- data/test/regression/test_escapes03.rb +0 -33
- data/test/regression/test_escapes04.rb +0 -31
- data/test/regression/test_escapes05.rb +0 -32
- data/test/regression/test_escapes06.rb +0 -26
- data/test/regression/test_escapes07.rb +0 -29
- data/test/regression/test_escapes08.rb +0 -30
- data/test/regression/test_excel2003_style01.rb +0 -21
- data/test/regression/test_excel2003_style02.rb +0 -37
- data/test/regression/test_excel2003_style03.rb +0 -40
- data/test/regression/test_excel2003_style04.rb +0 -24
- data/test/regression/test_excel2003_style05.rb +0 -31
- data/test/regression/test_excel2003_style06.rb +0 -31
- data/test/regression/test_excel2003_style07.rb +0 -31
- data/test/regression/test_excel2003_style08.rb +0 -26
- data/test/regression/test_firstsheet01.rb +0 -43
- data/test/regression/test_fit_to_pages01.rb +0 -35
- data/test/regression/test_fit_to_pages02.rb +0 -35
- data/test/regression/test_fit_to_pages03.rb +0 -35
- data/test/regression/test_fit_to_pages04.rb +0 -35
- data/test/regression/test_fit_to_pages05.rb +0 -35
- data/test/regression/test_format01.rb +0 -35
- data/test/regression/test_format02.rb +0 -47
- data/test/regression/test_format03.rb +0 -31
- data/test/regression/test_format04.rb +0 -41
- data/test/regression/test_format05.rb +0 -26
- data/test/regression/test_format11.rb +0 -28
- data/test/regression/test_format12.rb +0 -41
- data/test/regression/test_format13.rb +0 -31
- data/test/regression/test_format14.rb +0 -26
- data/test/regression/test_format15.rb +0 -26
- data/test/regression/test_format16.rb +0 -24
- data/test/regression/test_format17.rb +0 -24
- data/test/regression/test_formula_results01.rb +0 -37
- data/test/regression/test_gridlines01.rb +0 -34
- data/test/regression/test_header01.rb +0 -28
- data/test/regression/test_header02.rb +0 -28
- data/test/regression/test_header03.rb +0 -31
- data/test/regression/test_header04.rb +0 -30
- data/test/regression/test_header_image01.rb +0 -26
- data/test/regression/test_header_image02.rb +0 -33
- data/test/regression/test_header_image03.rb +0 -34
- data/test/regression/test_header_image04.rb +0 -34
- data/test/regression/test_header_image05.rb +0 -28
- data/test/regression/test_header_image06.rb +0 -32
- data/test/regression/test_header_image07.rb +0 -29
- data/test/regression/test_header_image08.rb +0 -33
- data/test/regression/test_header_image09.rb +0 -32
- data/test/regression/test_header_image10.rb +0 -36
- data/test/regression/test_header_image11.rb +0 -28
- data/test/regression/test_header_image12.rb +0 -28
- data/test/regression/test_header_image13.rb +0 -36
- data/test/regression/test_header_image14.rb +0 -36
- data/test/regression/test_header_image15.rb +0 -36
- data/test/regression/test_header_image16.rb +0 -42
- data/test/regression/test_header_image17.rb +0 -46
- data/test/regression/test_header_image18.rb +0 -48
- data/test/regression/test_header_image19.rb +0 -36
- data/test/regression/test_hide01.rb +0 -25
- data/test/regression/test_hyperlink01.rb +0 -26
- data/test/regression/test_hyperlink02.rb +0 -30
- data/test/regression/test_hyperlink03.rb +0 -36
- data/test/regression/test_hyperlink04.rb +0 -34
- data/test/regression/test_hyperlink05.rb +0 -29
- data/test/regression/test_hyperlink06.rb +0 -28
- data/test/regression/test_hyperlink07.rb +0 -23
- data/test/regression/test_hyperlink08.rb +0 -27
- data/test/regression/test_hyperlink09.rb +0 -28
- data/test/regression/test_hyperlink10.rb +0 -27
- data/test/regression/test_hyperlink11.rb +0 -27
- data/test/regression/test_hyperlink12.rb +0 -28
- data/test/regression/test_hyperlink13.rb +0 -27
- data/test/regression/test_hyperlink14.rb +0 -27
- data/test/regression/test_hyperlink15.rb +0 -29
- data/test/regression/test_hyperlink16.rb +0 -29
- data/test/regression/test_hyperlink17.rb +0 -30
- data/test/regression/test_hyperlink18.rb +0 -30
- data/test/regression/test_hyperlink20.rb +0 -32
- data/test/regression/test_hyperlink21.rb +0 -27
- data/test/regression/test_hyperlink22.rb +0 -27
- data/test/regression/test_hyperlink23.rb +0 -27
- data/test/regression/test_hyperlink24.rb +0 -27
- data/test/regression/test_hyperlink25.rb +0 -30
- data/test/regression/test_hyperlink26.rb +0 -30
- data/test/regression/test_hyperlink27.rb +0 -27
- data/test/regression/test_hyperlink28.rb +0 -50
- data/test/regression/test_hyperlink29.rb +0 -27
- data/test/regression/test_hyperlink30.rb +0 -36
- data/test/regression/test_hyperlink32.rb +0 -27
- data/test/regression/test_hyperlink33.rb +0 -28
- data/test/regression/test_hyperlink34.rb +0 -33
- data/test/regression/test_hyperlink35.rb +0 -39
- data/test/regression/test_hyperlink36.rb +0 -34
- data/test/regression/test_hyperlink37.rb +0 -33
- data/test/regression/test_hyperlink38.rb +0 -27
- data/test/regression/test_hyperlink39.rb +0 -27
- data/test/regression/test_hyperlink40.rb +0 -27
- data/test/regression/test_hyperlink41.rb +0 -27
- data/test/regression/test_hyperlink42.rb +0 -27
- data/test/regression/test_hyperlink43.rb +0 -27
- data/test/regression/test_hyperlink44.rb +0 -27
- data/test/regression/test_hyperlink45.rb +0 -27
- data/test/regression/test_hyperlink47.rb +0 -27
- data/test/regression/test_hyperlink48.rb +0 -31
- data/test/regression/test_hyperlink49.rb +0 -29
- data/test/regression/test_hyperlink50.rb +0 -27
- data/test/regression/test_hyperlink51.rb +0 -27
- data/test/regression/test_ignore_error01.rb +0 -23
- data/test/regression/test_ignore_error02.rb +0 -24
- data/test/regression/test_ignore_error03.rb +0 -26
- data/test/regression/test_ignore_error04.rb +0 -26
- data/test/regression/test_ignore_error05.rb +0 -32
- data/test/regression/test_ignore_error06.rb +0 -32
- data/test/regression/test_image01.rb +0 -23
- data/test/regression/test_image02.rb +0 -23
- data/test/regression/test_image03.rb +0 -23
- data/test/regression/test_image04.rb +0 -23
- data/test/regression/test_image05.rb +0 -26
- data/test/regression/test_image06.rb +0 -36
- data/test/regression/test_image07.rb +0 -25
- data/test/regression/test_image08.rb +0 -27
- data/test/regression/test_image09.rb +0 -24
- data/test/regression/test_image10.rb +0 -24
- data/test/regression/test_image11.rb +0 -24
- data/test/regression/test_image12.rb +0 -27
- data/test/regression/test_image13.rb +0 -27
- data/test/regression/test_image14.rb +0 -29
- data/test/regression/test_image15.rb +0 -31
- data/test/regression/test_image16.rb +0 -24
- data/test/regression/test_image17.rb +0 -23
- data/test/regression/test_image18.rb +0 -27
- data/test/regression/test_image19.rb +0 -24
- data/test/regression/test_image22.rb +0 -24
- data/test/regression/test_image23.rb +0 -30
- data/test/regression/test_image24.rb +0 -24
- data/test/regression/test_image25.rb +0 -24
- data/test/regression/test_image26.rb +0 -30
- data/test/regression/test_image27.rb +0 -24
- data/test/regression/test_image28.rb +0 -27
- data/test/regression/test_image29.rb +0 -27
- data/test/regression/test_image30.rb +0 -27
- data/test/regression/test_image31.rb +0 -30
- data/test/regression/test_image32.rb +0 -28
- data/test/regression/test_image33.rb +0 -32
- data/test/regression/test_image35.rb +0 -26
- data/test/regression/test_image36.rb +0 -26
- data/test/regression/test_image44.rb +0 -28
- data/test/regression/test_image45.rb +0 -29
- data/test/regression/test_image46.rb +0 -29
- data/test/regression/test_image47.rb +0 -28
- data/test/regression/test_image48.rb +0 -32
- data/test/regression/test_image49.rb +0 -38
- data/test/regression/test_image50.rb +0 -24
- data/test/regression/test_image51.rb +0 -30
- data/test/regression/test_image52.rb +0 -26
- data/test/regression/test_image53.rb +0 -26
- data/test/regression/test_image54.rb +0 -26
- data/test/regression/test_image55.rb +0 -27
- data/test/regression/test_image56.rb +0 -23
- data/test/regression/test_image57.rb +0 -23
- data/test/regression/test_landscape01.rb +0 -27
- data/test/regression/test_macro01.rb +0 -29
- data/test/regression/test_merge_cells01.rb +0 -25
- data/test/regression/test_merge_range01.rb +0 -24
- data/test/regression/test_merge_range02.rb +0 -24
- data/test/regression/test_merge_range03.rb +0 -26
- data/test/regression/test_merge_range04.rb +0 -24
- data/test/regression/test_merge_range05.rb +0 -24
- data/test/regression/test_object_position01.rb +0 -26
- data/test/regression/test_object_position02.rb +0 -26
- data/test/regression/test_object_position03.rb +0 -26
- data/test/regression/test_object_position04.rb +0 -44
- data/test/regression/test_object_position06.rb +0 -28
- data/test/regression/test_object_position07.rb +0 -28
- data/test/regression/test_object_position08.rb +0 -47
- data/test/regression/test_object_position09.rb +0 -50
- data/test/regression/test_object_position10.rb +0 -28
- data/test/regression/test_object_position12.rb +0 -25
- data/test/regression/test_object_position13.rb +0 -25
- data/test/regression/test_object_position14.rb +0 -25
- data/test/regression/test_object_position15.rb +0 -29
- data/test/regression/test_object_position16.rb +0 -29
- data/test/regression/test_object_position17.rb +0 -29
- data/test/regression/test_object_position18.rb +0 -29
- data/test/regression/test_object_position19.rb +0 -29
- data/test/regression/test_object_position20.rb +0 -29
- data/test/regression/test_outline01.rb +0 -84
- data/test/regression/test_outline02.rb +0 -87
- data/test/regression/test_outline03.rb +0 -57
- data/test/regression/test_outline04.rb +0 -53
- data/test/regression/test_outline05.rb +0 -88
- data/test/regression/test_outline06.rb +0 -87
- data/test/regression/test_page_breaks01.rb +0 -34
- data/test/regression/test_page_breaks02.rb +0 -34
- data/test/regression/test_page_breaks03.rb +0 -34
- data/test/regression/test_page_breaks04.rb +0 -34
- data/test/regression/test_page_breaks05.rb +0 -34
- data/test/regression/test_page_breaks06.rb +0 -35
- data/test/regression/test_page_view01.rb +0 -34
- data/test/regression/test_panes01.rb +0 -61
- data/test/regression/test_print_across01.rb +0 -35
- data/test/regression/test_print_area01.rb +0 -34
- data/test/regression/test_print_area02.rb +0 -34
- data/test/regression/test_print_area03.rb +0 -34
- data/test/regression/test_print_area04.rb +0 -34
- data/test/regression/test_print_area05.rb +0 -34
- data/test/regression/test_print_area06.rb +0 -34
- data/test/regression/test_print_area07.rb +0 -35
- data/test/regression/test_print_options01.rb +0 -34
- data/test/regression/test_print_options02.rb +0 -34
- data/test/regression/test_print_options03.rb +0 -34
- data/test/regression/test_print_options04.rb +0 -34
- data/test/regression/test_print_options05.rb +0 -37
- data/test/regression/test_print_options06.rb +0 -35
- data/test/regression/test_print_options07.rb +0 -31
- data/test/regression/test_print_scale01.rb +0 -35
- data/test/regression/test_print_scale02.rb +0 -35
- data/test/regression/test_properties01.rb +0 -36
- data/test/regression/test_properties02.rb +0 -25
- data/test/regression/test_properties03.rb +0 -26
- data/test/regression/test_properties04.rb +0 -61
- data/test/regression/test_properties05.rb +0 -30
- data/test/regression/test_protect01.rb +0 -28
- data/test/regression/test_protect02.rb +0 -30
- data/test/regression/test_protect03.rb +0 -30
- data/test/regression/test_protect04.rb +0 -32
- data/test/regression/test_protect05.rb +0 -35
- data/test/regression/test_protect06.rb +0 -35
- data/test/regression/test_protect07.rb +0 -23
- data/test/regression/test_quote_name01.rb +0 -48
- data/test/regression/test_quote_name03.rb +0 -41
- data/test/regression/test_quote_name04.rb +0 -40
- data/test/regression/test_repeat01.rb +0 -34
- data/test/regression/test_repeat02.rb +0 -34
- data/test/regression/test_repeat03.rb +0 -35
- data/test/regression/test_repeat04.rb +0 -34
- data/test/regression/test_repeat05.rb +0 -41
- data/test/regression/test_rich_string01.rb +0 -28
- data/test/regression/test_rich_string02.rb +0 -28
- data/test/regression/test_rich_string03.rb +0 -28
- data/test/regression/test_rich_string04.rb +0 -28
- data/test/regression/test_rich_string05.rb +0 -30
- data/test/regression/test_rich_string06.rb +0 -27
- data/test/regression/test_rich_string07.rb +0 -33
- data/test/regression/test_rich_string08.rb +0 -29
- data/test/regression/test_rich_string09.rb +0 -31
- data/test/regression/test_rich_string10.rb +0 -30
- data/test/regression/test_rich_string11.rb +0 -29
- data/test/regression/test_rich_string12.rb +0 -32
- data/test/regression/test_row_col_format01.rb +0 -24
- data/test/regression/test_row_col_format02.rb +0 -25
- data/test/regression/test_row_col_format03.rb +0 -24
- data/test/regression/test_row_col_format04.rb +0 -25
- data/test/regression/test_row_col_format05.rb +0 -26
- data/test/regression/test_row_col_format06.rb +0 -29
- data/test/regression/test_row_col_format07.rb +0 -24
- data/test/regression/test_row_col_format08.rb +0 -34
- data/test/regression/test_row_col_format09.rb +0 -33
- data/test/regression/test_row_col_format10.rb +0 -24
- data/test/regression/test_row_col_format11.rb +0 -23
- data/test/regression/test_row_col_format12.rb +0 -23
- data/test/regression/test_row_col_format13.rb +0 -28
- data/test/regression/test_row_col_format14.rb +0 -28
- data/test/regression/test_selection01.rb +0 -23
- data/test/regression/test_selection02.rb +0 -33
- data/test/regression/test_set_column01.rb +0 -63
- data/test/regression/test_set_column02.rb +0 -64
- data/test/regression/test_set_column03.rb +0 -34
- data/test/regression/test_set_column04.rb +0 -42
- data/test/regression/test_set_column05.rb +0 -52
- data/test/regression/test_set_column06.rb +0 -49
- data/test/regression/test_set_column07.rb +0 -45
- data/test/regression/test_set_column08.rb +0 -42
- data/test/regression/test_set_column09.rb +0 -31
- data/test/regression/test_set_column10.rb +0 -55
- data/test/regression/test_set_column11.rb +0 -48
- data/test/regression/test_set_print_scale01.rb +0 -36
- data/test/regression/test_set_row01.rb +0 -35
- data/test/regression/test_set_row02.rb +0 -35
- data/test/regression/test_set_row03.rb +0 -35
- data/test/regression/test_set_row04.rb +0 -35
- data/test/regression/test_set_start_page01.rb +0 -33
- data/test/regression/test_set_start_page02.rb +0 -33
- data/test/regression/test_set_start_page03.rb +0 -33
- data/test/regression/test_shape01.rb +0 -25
- data/test/regression/test_shape02.rb +0 -42
- data/test/regression/test_shape03.rb +0 -45
- data/test/regression/test_shape04.rb +0 -43
- data/test/regression/test_shape_connect01.rb +0 -48
- data/test/regression/test_shape_connect02.rb +0 -42
- data/test/regression/test_shape_connect03.rb +0 -78
- data/test/regression/test_shape_connect04.rb +0 -75
- data/test/regression/test_shape_scale01.rb +0 -45
- data/test/regression/test_shape_stencil01.rb +0 -39
- data/test/regression/test_shared_strings01.rb +0 -32
- data/test/regression/test_shared_strings02.rb +0 -45
- data/test/regression/test_shared_strings_encoding.rb +0 -0
- data/test/regression/test_simple01.rb +0 -24
- data/test/regression/test_simple02.rb +0 -32
- data/test/regression/test_simple03.rb +0 -39
- data/test/regression/test_simple04.rb +0 -29
- data/test/regression/test_simple05.rb +0 -40
- data/test/regression/test_tab_color01.rb +0 -20
- data/test/regression/test_table01.rb +0 -27
- data/test/regression/test_table02.rb +0 -37
- data/test/regression/test_table03.rb +0 -33
- data/test/regression/test_table04.rb +0 -37
- data/test/regression/test_table05.rb +0 -41
- data/test/regression/test_table06.rb +0 -44
- data/test/regression/test_table07.rb +0 -29
- data/test/regression/test_table08.rb +0 -48
- data/test/regression/test_table09.rb +0 -65
- data/test/regression/test_table10.rb +0 -68
- data/test/regression/test_table11.rb +0 -37
- data/test/regression/test_table12.rb +0 -36
- data/test/regression/test_table13.rb +0 -51
- data/test/regression/test_table14.rb +0 -51
- data/test/regression/test_table15.rb +0 -37
- data/test/regression/test_table16.rb +0 -37
- data/test/regression/test_table17.rb +0 -70
- data/test/regression/test_table20.rb +0 -34
- data/test/regression/test_table21.rb +0 -36
- data/test/regression/test_table22.rb +0 -32
- data/test/regression/test_table23.rb +0 -56
- data/test/regression/test_table24.rb +0 -27
- data/test/regression/test_table25.rb +0 -27
- data/test/regression/test_table26.rb +0 -38
- data/test/regression/test_tutorial01.rb +0 -38
- data/test/regression/test_tutorial02.rb +0 -44
- data/test/regression/test_tutorial03.rb +0 -49
- data/test/regression/test_types02.rb +0 -25
- data/test/regression/test_types08.rb +0 -31
- data/test/regression/test_update_range_format_with_params.rb +0 -42
- data/test/regression/test_urls_as_strings.rb +0 -25
- data/test/regression/test_utf8_01.rb +0 -23
- data/test/regression/test_utf8_03.rb +0 -23
- data/test/regression/test_utf8_04.rb +0 -23
- data/test/regression/test_utf8_05.rb +0 -26
- data/test/regression/test_utf8_06.rb +0 -28
- data/test/regression/test_utf8_07.rb +0 -27
- data/test/regression/test_utf8_08.rb +0 -38
- data/test/regression/test_utf8_09.rb +0 -20
- data/test/regression/test_utf8_10.rb +0 -42
- data/test/regression/test_utf8_11.rb +0 -23
- data/test/regression/test_vml01.rb +0 -29
- data/test/regression/test_vml02.rb +0 -31
- data/test/regression/test_vml03.rb +0 -40
- data/test/regression/xlsx_files/array_formula01.xlsx +0 -0
- data/test/regression/xlsx_files/array_formula02.xlsx +0 -0
- data/test/regression/xlsx_files/array_formula03.xlsx +0 -0
- data/test/regression/xlsx_files/array_formula04.xlsx +0 -0
- data/test/regression/xlsx_files/autofilter00.xlsx +0 -0
- data/test/regression/xlsx_files/autofilter01.xlsx +0 -0
- data/test/regression/xlsx_files/autofilter02.xlsx +0 -0
- data/test/regression/xlsx_files/autofilter03.xlsx +0 -0
- data/test/regression/xlsx_files/autofilter04.xlsx +0 -0
- data/test/regression/xlsx_files/autofilter05.xlsx +0 -0
- data/test/regression/xlsx_files/autofilter06.xlsx +0 -0
- data/test/regression/xlsx_files/autofilter07.xlsx +0 -0
- data/test/regression/xlsx_files/autofilter08.xlsx +0 -0
- data/test/regression/xlsx_files/autofilter09.xlsx +0 -0
- data/test/regression/xlsx_files/autofilter10.xlsx +0 -0
- data/test/regression/xlsx_files/background01.xlsx +0 -0
- data/test/regression/xlsx_files/background02.xlsx +0 -0
- data/test/regression/xlsx_files/background03.xlsx +0 -0
- data/test/regression/xlsx_files/background04.xlsx +0 -0
- data/test/regression/xlsx_files/background05.xlsx +0 -0
- data/test/regression/xlsx_files/background06.xlsx +0 -0
- data/test/regression/xlsx_files/background07.xlsx +0 -0
- data/test/regression/xlsx_files/button01.xlsx +0 -0
- data/test/regression/xlsx_files/button02.xlsx +0 -0
- data/test/regression/xlsx_files/button03.xlsx +0 -0
- data/test/regression/xlsx_files/button04.xlsx +0 -0
- data/test/regression/xlsx_files/button05.xlsx +0 -0
- data/test/regression/xlsx_files/button07.xlsm +0 -0
- data/test/regression/xlsx_files/button08.xlsx +0 -0
- data/test/regression/xlsx_files/button09.xlsx +0 -0
- data/test/regression/xlsx_files/button10.xlsx +0 -0
- data/test/regression/xlsx_files/button11.xlsx +0 -0
- data/test/regression/xlsx_files/button12.xlsx +0 -0
- data/test/regression/xlsx_files/chart_area01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_area02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_area03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_area04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis11.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis12.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis13.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis14.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis15.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis16.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis17.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis18.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis19.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis20.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis21.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis22.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis23.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis24.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis25.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis26.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis27.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis28.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis29.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis30.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis31.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis32.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis33.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis34.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis35.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis36.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis37.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis38.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis39.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis40.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis41.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis42.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis43.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis44.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis45.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis46.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis47.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis48.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar11.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar12.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar13.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar14.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar15.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar16.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar17.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar18.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar19.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar20.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar21.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar22.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar23.xlsx +0 -0
- data/test/regression/xlsx_files/chart_bar24.xlsx +0 -0
- data/test/regression/xlsx_files/chart_blank01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_blank02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_blank03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_blank04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_blank05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_blank06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_chartarea01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_chartarea03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_chartarea04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_chartarea05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_chartarea06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_clustered01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column11.xlsx +0 -0
- data/test/regression/xlsx_files/chart_column12.xlsx +0 -0
- data/test/regression/xlsx_files/chart_combined01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_combined02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_combined03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_combined04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_combined05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_combined06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_combined07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_combined08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_combined09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_combined10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_combined11.xlsx +0 -0
- data/test/regression/xlsx_files/chart_crossing01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_crossing02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_crossing03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_crossing04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_crossing05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_crossing06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels11.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels12.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels13.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels14.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels15.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels16.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels17.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels18.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels19.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels20.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels21.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels22.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels23.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels24.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels25.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels26.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels27.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels28.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels29.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels30.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels31.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels32.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels33.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels34.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels35.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels36.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels37.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels38.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels39.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels40.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels41.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels42.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels43.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels44.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels45.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels46.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels47.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels48.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels49.xlsx +0 -0
- data/test/regression/xlsx_files/chart_data_labels50.xlsx +0 -0
- data/test/regression/xlsx_files/chart_date01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_date02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_date03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_date04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_date05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units11.xlsx +0 -0
- data/test/regression/xlsx_files/chart_display_units12.xlsx +0 -0
- data/test/regression/xlsx_files/chart_doughnut01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_doughnut02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_doughnut03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_doughnut04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_doughnut05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_doughnut06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_doughnut07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_drop_lines01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_drop_lines02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_drop_lines03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_drop_lines04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_font01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_font02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_font03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_font04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_font05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_font06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_font07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_font08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_font09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format11.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format12.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format13.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format14.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format15.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format16.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format17.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format18.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format19.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format20.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format21.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format22.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format23.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format24.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format25.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format26.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format27.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format28.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format29.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format30.xlsx +0 -0
- data/test/regression/xlsx_files/chart_format31.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gap01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gap02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gap03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gap04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gap05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient11.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient12.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gradient13.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gridlines01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gridlines02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gridlines03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gridlines04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gridlines05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gridlines06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gridlines07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gridlines08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_gridlines09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_layout01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_layout02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_layout03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_layout04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_layout05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_layout06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_layout07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_layout08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_legend01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_legend03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_legend04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_legend05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_legend06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_legend07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_line01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_line02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_line03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_line04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_line05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_line06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_name01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_name02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_name03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_order01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_order03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pattern01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pattern02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pattern03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pattern04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pattern05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pattern06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pattern07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pattern08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pattern09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pattern10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pie01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pie02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pie03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pie04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_pie05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_points01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_points02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_points03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_points04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_points05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_points06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_radar01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_radar02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_radar03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter05.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter06.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter11.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter12.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter14.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter15.xlsx +0 -0
- data/test/regression/xlsx_files/chart_size01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_size04.xlsx +0 -0
- data/test/regression/xlsx_files/chart_sparse01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_stock01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_stock02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_str01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_str02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_table01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_table02.xlsx +0 -0
- data/test/regression/xlsx_files/chart_table03.xlsx +0 -0
- data/test/regression/xlsx_files/chart_title01.xlsx +0 -0
- data/test/regression/xlsx_files/chart_title02.xlsx +0 -0
- data/test/regression/xlsx_files/chartsheet01.xlsx +0 -0
- data/test/regression/xlsx_files/chartsheet02.xlsx +0 -0
- data/test/regression/xlsx_files/chartsheet03.xlsx +0 -0
- data/test/regression/xlsx_files/chartsheet04.xlsx +0 -0
- data/test/regression/xlsx_files/chartsheet05.xlsx +0 -0
- data/test/regression/xlsx_files/chartsheet06.xlsx +0 -0
- data/test/regression/xlsx_files/chartsheet07.xlsx +0 -0
- data/test/regression/xlsx_files/chartsheet08.xlsx +0 -0
- data/test/regression/xlsx_files/chartsheet09.xlsx +0 -0
- data/test/regression/xlsx_files/comment01.xlsx +0 -0
- data/test/regression/xlsx_files/comment02.xlsx +0 -0
- data/test/regression/xlsx_files/comment03.xlsx +0 -0
- data/test/regression/xlsx_files/comment04.xlsx +0 -0
- data/test/regression/xlsx_files/comment05.xlsx +0 -0
- data/test/regression/xlsx_files/comment06.xlsx +0 -0
- data/test/regression/xlsx_files/comment07.xlsx +0 -0
- data/test/regression/xlsx_files/comment08.xlsx +0 -0
- data/test/regression/xlsx_files/comment09.xlsx +0 -0
- data/test/regression/xlsx_files/comment10.xlsx +0 -0
- data/test/regression/xlsx_files/comment11.xlsx +0 -0
- data/test/regression/xlsx_files/comment12.xlsx +0 -0
- data/test/regression/xlsx_files/comment13.xlsx +0 -0
- data/test/regression/xlsx_files/comment14.xlsx +0 -0
- data/test/regression/xlsx_files/comment15.xlsx +0 -0
- data/test/regression/xlsx_files/comment16.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format01.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format02.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format03.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format04.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format05.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format06.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format07.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format08.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format10.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format11.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format12.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format14.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format15.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format16.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format17.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format18.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format19.xlsx +0 -0
- data/test/regression/xlsx_files/cond_format20.xlsx +0 -0
- data/test/regression/xlsx_files/custom_colors01.xlsx +0 -0
- data/test/regression/xlsx_files/data_validation01.xlsx +0 -0
- data/test/regression/xlsx_files/data_validation02.xlsx +0 -0
- data/test/regression/xlsx_files/data_validation03.xlsx +0 -0
- data/test/regression/xlsx_files/data_validation08.xlsx +0 -0
- data/test/regression/xlsx_files/date_1904_01.xlsx +0 -0
- data/test/regression/xlsx_files/date_1904_02.xlsx +0 -0
- data/test/regression/xlsx_files/date_examples01.xlsx +0 -0
- data/test/regression/xlsx_files/default_format01.xlsx +0 -0
- data/test/regression/xlsx_files/default_row01.xlsx +0 -0
- data/test/regression/xlsx_files/default_row02.xlsx +0 -0
- data/test/regression/xlsx_files/default_row03.xlsx +0 -0
- data/test/regression/xlsx_files/default_row04.xlsx +0 -0
- data/test/regression/xlsx_files/default_row05.xlsx +0 -0
- data/test/regression/xlsx_files/defined_name01.xlsx +0 -0
- data/test/regression/xlsx_files/defined_name02.xlsx +0 -0
- data/test/regression/xlsx_files/defined_name03.xlsx +0 -0
- data/test/regression/xlsx_files/defined_name04.xlsx +0 -0
- data/test/regression/xlsx_files/dynamic_array01.xlsx +0 -0
- data/test/regression/xlsx_files/escapes01.xlsx +0 -0
- data/test/regression/xlsx_files/escapes02.xlsx +0 -0
- data/test/regression/xlsx_files/escapes03.xlsx +0 -0
- data/test/regression/xlsx_files/escapes04.xlsx +0 -0
- data/test/regression/xlsx_files/escapes05.xlsx +0 -0
- data/test/regression/xlsx_files/escapes06.xlsx +0 -0
- data/test/regression/xlsx_files/escapes07.xlsx +0 -0
- data/test/regression/xlsx_files/escapes08.xlsx +0 -0
- data/test/regression/xlsx_files/excel2003_style01.xlsx +0 -0
- data/test/regression/xlsx_files/excel2003_style02.xlsx +0 -0
- data/test/regression/xlsx_files/excel2003_style03.xlsx +0 -0
- data/test/regression/xlsx_files/excel2003_style04.xlsx +0 -0
- data/test/regression/xlsx_files/excel2003_style05.xlsx +0 -0
- data/test/regression/xlsx_files/excel2003_style06.xlsx +0 -0
- data/test/regression/xlsx_files/excel2003_style07.xlsx +0 -0
- data/test/regression/xlsx_files/excel2003_style08.xlsx +0 -0
- data/test/regression/xlsx_files/filehandle01.xlsx +0 -0
- data/test/regression/xlsx_files/firstsheet01.xlsx +0 -0
- data/test/regression/xlsx_files/fit_to_pages01.xlsx +0 -0
- data/test/regression/xlsx_files/fit_to_pages02.xlsx +0 -0
- data/test/regression/xlsx_files/fit_to_pages03.xlsx +0 -0
- data/test/regression/xlsx_files/fit_to_pages04.xlsx +0 -0
- data/test/regression/xlsx_files/fit_to_pages05.xlsx +0 -0
- data/test/regression/xlsx_files/format01.xlsx +0 -0
- data/test/regression/xlsx_files/format02.xlsx +0 -0
- data/test/regression/xlsx_files/format03.xlsx +0 -0
- data/test/regression/xlsx_files/format04.xlsx +0 -0
- data/test/regression/xlsx_files/format05.xlsx +0 -0
- data/test/regression/xlsx_files/format11.xlsx +0 -0
- data/test/regression/xlsx_files/format12.xlsx +0 -0
- data/test/regression/xlsx_files/format13.xlsx +0 -0
- data/test/regression/xlsx_files/format14.xlsx +0 -0
- data/test/regression/xlsx_files/format15.xlsx +0 -0
- data/test/regression/xlsx_files/format16.xlsx +0 -0
- data/test/regression/xlsx_files/format17.xlsx +0 -0
- data/test/regression/xlsx_files/formula_results01.xlsx +0 -0
- data/test/regression/xlsx_files/gridlines01.xlsx +0 -0
- data/test/regression/xlsx_files/header01.xlsx +0 -0
- data/test/regression/xlsx_files/header02.xlsx +0 -0
- data/test/regression/xlsx_files/header03.xlsx +0 -0
- data/test/regression/xlsx_files/header04.xlsx +0 -0
- data/test/regression/xlsx_files/header_image01.xlsx +0 -0
- data/test/regression/xlsx_files/header_image02.xlsx +0 -0
- data/test/regression/xlsx_files/header_image03.xlsx +0 -0
- data/test/regression/xlsx_files/header_image04.xlsx +0 -0
- data/test/regression/xlsx_files/header_image05.xlsx +0 -0
- data/test/regression/xlsx_files/header_image06.xlsx +0 -0
- data/test/regression/xlsx_files/header_image07.xlsx +0 -0
- data/test/regression/xlsx_files/header_image08.xlsx +0 -0
- data/test/regression/xlsx_files/header_image09.xlsx +0 -0
- data/test/regression/xlsx_files/header_image10.xlsx +0 -0
- data/test/regression/xlsx_files/header_image11.xlsx +0 -0
- data/test/regression/xlsx_files/header_image12.xlsx +0 -0
- data/test/regression/xlsx_files/header_image13.xlsx +0 -0
- data/test/regression/xlsx_files/header_image14.xlsx +0 -0
- data/test/regression/xlsx_files/header_image15.xlsx +0 -0
- data/test/regression/xlsx_files/header_image16.xlsx +0 -0
- data/test/regression/xlsx_files/header_image17.xlsx +0 -0
- data/test/regression/xlsx_files/header_image18.xlsx +0 -0
- data/test/regression/xlsx_files/header_image19.xlsx +0 -0
- data/test/regression/xlsx_files/hide01.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink01.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink02.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink03.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink04.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink05.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink06.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink07.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink08.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink09.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink10.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink11.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink12.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink13.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink14.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink15.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink16.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink17.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink18.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink20.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink21.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink22.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink23.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink24.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink25.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink26.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink27.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink28.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink29.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink30.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink31.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink32.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink33.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink34.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink35.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink36.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink37.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink38.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink39.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink40.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink41.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink42.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink43.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink44.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink45.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink46.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink47.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink48.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink49.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink50.xlsx +0 -0
- data/test/regression/xlsx_files/hyperlink51.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error01.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error02.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error03.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error04.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error05.xlsx +0 -0
- data/test/regression/xlsx_files/ignore_error06.xlsx +0 -0
- data/test/regression/xlsx_files/image01.xlsx +0 -0
- data/test/regression/xlsx_files/image02.xlsx +0 -0
- data/test/regression/xlsx_files/image03.xlsx +0 -0
- data/test/regression/xlsx_files/image04.xlsx +0 -0
- data/test/regression/xlsx_files/image05.xlsx +0 -0
- data/test/regression/xlsx_files/image06.xlsx +0 -0
- data/test/regression/xlsx_files/image07.xlsx +0 -0
- data/test/regression/xlsx_files/image08.xlsx +0 -0
- data/test/regression/xlsx_files/image09.xlsx +0 -0
- data/test/regression/xlsx_files/image10.xlsx +0 -0
- data/test/regression/xlsx_files/image11.xlsx +0 -0
- data/test/regression/xlsx_files/image12.xlsx +0 -0
- data/test/regression/xlsx_files/image13.xlsx +0 -0
- data/test/regression/xlsx_files/image14.xlsx +0 -0
- data/test/regression/xlsx_files/image15.xlsx +0 -0
- data/test/regression/xlsx_files/image16.xlsx +0 -0
- data/test/regression/xlsx_files/image17.xlsx +0 -0
- data/test/regression/xlsx_files/image18.xlsx +0 -0
- data/test/regression/xlsx_files/image19.xlsx +0 -0
- data/test/regression/xlsx_files/image22.xlsx +0 -0
- data/test/regression/xlsx_files/image23.xlsx +0 -0
- data/test/regression/xlsx_files/image24.xlsx +0 -0
- data/test/regression/xlsx_files/image25.xlsx +0 -0
- data/test/regression/xlsx_files/image26.xlsx +0 -0
- data/test/regression/xlsx_files/image27.xlsx +0 -0
- data/test/regression/xlsx_files/image28.xlsx +0 -0
- data/test/regression/xlsx_files/image29.xlsx +0 -0
- data/test/regression/xlsx_files/image30.xlsx +0 -0
- data/test/regression/xlsx_files/image31.xlsx +0 -0
- data/test/regression/xlsx_files/image32.xlsx +0 -0
- data/test/regression/xlsx_files/image33.xlsx +0 -0
- data/test/regression/xlsx_files/image35.xlsx +0 -0
- data/test/regression/xlsx_files/image36.xlsx +0 -0
- data/test/regression/xlsx_files/image44.xlsx +0 -0
- data/test/regression/xlsx_files/image45.xlsx +0 -0
- data/test/regression/xlsx_files/image46.xlsx +0 -0
- data/test/regression/xlsx_files/image47.xlsx +0 -0
- data/test/regression/xlsx_files/image48.xlsx +0 -0
- data/test/regression/xlsx_files/image49.xlsx +0 -0
- data/test/regression/xlsx_files/image50.xlsx +0 -0
- data/test/regression/xlsx_files/image51.xlsx +0 -0
- data/test/regression/xlsx_files/image52.xlsx +0 -0
- data/test/regression/xlsx_files/image53.xlsx +0 -0
- data/test/regression/xlsx_files/image54.xlsx +0 -0
- data/test/regression/xlsx_files/image55.xlsx +0 -0
- data/test/regression/xlsx_files/image56.xlsx +0 -0
- data/test/regression/xlsx_files/image57.xlsx +0 -0
- data/test/regression/xlsx_files/landscape01.xlsx +0 -0
- data/test/regression/xlsx_files/macro01.xlsm +0 -0
- data/test/regression/xlsx_files/merge_cells01.xlsx +0 -0
- data/test/regression/xlsx_files/merge_range01.xlsx +0 -0
- data/test/regression/xlsx_files/merge_range02.xlsx +0 -0
- data/test/regression/xlsx_files/merge_range03.xlsx +0 -0
- data/test/regression/xlsx_files/merge_range04.xlsx +0 -0
- data/test/regression/xlsx_files/merge_range05.xlsx +0 -0
- data/test/regression/xlsx_files/object_position01.xlsx +0 -0
- data/test/regression/xlsx_files/object_position02.xlsx +0 -0
- data/test/regression/xlsx_files/object_position03.xlsx +0 -0
- data/test/regression/xlsx_files/object_position04.xlsx +0 -0
- data/test/regression/xlsx_files/object_position06.xlsx +0 -0
- data/test/regression/xlsx_files/object_position07.xlsx +0 -0
- data/test/regression/xlsx_files/object_position08.xlsx +0 -0
- data/test/regression/xlsx_files/object_position09.xlsx +0 -0
- data/test/regression/xlsx_files/object_position10.xlsx +0 -0
- data/test/regression/xlsx_files/object_position12.xlsx +0 -0
- data/test/regression/xlsx_files/object_position13.xlsx +0 -0
- data/test/regression/xlsx_files/object_position14.xlsx +0 -0
- data/test/regression/xlsx_files/object_position15.xlsx +0 -0
- data/test/regression/xlsx_files/object_position16.xlsx +0 -0
- data/test/regression/xlsx_files/object_position17.xlsx +0 -0
- data/test/regression/xlsx_files/object_position18.xlsx +0 -0
- data/test/regression/xlsx_files/object_position19.xlsx +0 -0
- data/test/regression/xlsx_files/object_position20.xlsx +0 -0
- data/test/regression/xlsx_files/outline01.xlsx +0 -0
- data/test/regression/xlsx_files/outline02.xlsx +0 -0
- data/test/regression/xlsx_files/outline03.xlsx +0 -0
- data/test/regression/xlsx_files/outline04.xlsx +0 -0
- data/test/regression/xlsx_files/outline05.xlsx +0 -0
- data/test/regression/xlsx_files/outline06.xlsx +0 -0
- data/test/regression/xlsx_files/page_breaks01.xlsx +0 -0
- data/test/regression/xlsx_files/page_breaks02.xlsx +0 -0
- data/test/regression/xlsx_files/page_breaks03.xlsx +0 -0
- data/test/regression/xlsx_files/page_breaks04.xlsx +0 -0
- data/test/regression/xlsx_files/page_breaks05.xlsx +0 -0
- data/test/regression/xlsx_files/page_breaks06.xlsx +0 -0
- data/test/regression/xlsx_files/page_view01.xlsx +0 -0
- data/test/regression/xlsx_files/panes01.xlsx +0 -0
- data/test/regression/xlsx_files/print_across01.xlsx +0 -0
- data/test/regression/xlsx_files/print_area01.xlsx +0 -0
- data/test/regression/xlsx_files/print_area02.xlsx +0 -0
- data/test/regression/xlsx_files/print_area03.xlsx +0 -0
- data/test/regression/xlsx_files/print_area04.xlsx +0 -0
- data/test/regression/xlsx_files/print_area05.xlsx +0 -0
- data/test/regression/xlsx_files/print_area06.xlsx +0 -0
- data/test/regression/xlsx_files/print_area07.xlsx +0 -0
- data/test/regression/xlsx_files/print_options01.xlsx +0 -0
- data/test/regression/xlsx_files/print_options02.xlsx +0 -0
- data/test/regression/xlsx_files/print_options03.xlsx +0 -0
- data/test/regression/xlsx_files/print_options04.xlsx +0 -0
- data/test/regression/xlsx_files/print_options05.xlsx +0 -0
- data/test/regression/xlsx_files/print_options06.xlsx +0 -0
- data/test/regression/xlsx_files/print_options07.xlsx +0 -0
- data/test/regression/xlsx_files/print_scale01.xlsx +0 -0
- data/test/regression/xlsx_files/print_scale02.xlsx +0 -0
- data/test/regression/xlsx_files/properties01.xlsx +0 -0
- data/test/regression/xlsx_files/properties02.xlsx +0 -0
- data/test/regression/xlsx_files/properties03.xlsx +0 -0
- data/test/regression/xlsx_files/properties04.xlsx +0 -0
- data/test/regression/xlsx_files/properties05.xlsx +0 -0
- data/test/regression/xlsx_files/protect01.xlsx +0 -0
- data/test/regression/xlsx_files/protect02.xlsx +0 -0
- data/test/regression/xlsx_files/protect03.xlsx +0 -0
- data/test/regression/xlsx_files/protect04.xlsx +0 -0
- data/test/regression/xlsx_files/protect05.xlsx +0 -0
- data/test/regression/xlsx_files/protect06.xlsx +0 -0
- data/test/regression/xlsx_files/protect07.xlsx +0 -0
- data/test/regression/xlsx_files/quote_name01.xlsx +0 -0
- data/test/regression/xlsx_files/quote_name02.xlsx +0 -0
- data/test/regression/xlsx_files/quote_name03.xlsx +0 -0
- data/test/regression/xlsx_files/quote_name04.xlsx +0 -0
- data/test/regression/xlsx_files/repeat01.xlsx +0 -0
- data/test/regression/xlsx_files/repeat02.xlsx +0 -0
- data/test/regression/xlsx_files/repeat03.xlsx +0 -0
- data/test/regression/xlsx_files/repeat04.xlsx +0 -0
- data/test/regression/xlsx_files/repeat05.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string01.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string02.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string03.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string04.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string05.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string06.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string07.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string08.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string09.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string10.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string11.xlsx +0 -0
- data/test/regression/xlsx_files/rich_string12.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format01.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format02.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format03.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format04.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format05.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format06.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format07.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format08.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format09.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format10.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format11.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format12.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format13.xlsx +0 -0
- data/test/regression/xlsx_files/row_col_format14.xlsx +0 -0
- data/test/regression/xlsx_files/selection01.xlsx +0 -0
- data/test/regression/xlsx_files/selection02.xlsx +0 -0
- data/test/regression/xlsx_files/set_column01.xlsx +0 -0
- data/test/regression/xlsx_files/set_column03.xlsx +0 -0
- data/test/regression/xlsx_files/set_column04.xlsx +0 -0
- data/test/regression/xlsx_files/set_column05.xlsx +0 -0
- data/test/regression/xlsx_files/set_column06.xlsx +0 -0
- data/test/regression/xlsx_files/set_column07.xlsx +0 -0
- data/test/regression/xlsx_files/set_column08.xlsx +0 -0
- data/test/regression/xlsx_files/set_column09.xlsx +0 -0
- data/test/regression/xlsx_files/set_print_scale01.xlsx +0 -0
- data/test/regression/xlsx_files/set_row01.xlsx +0 -0
- data/test/regression/xlsx_files/set_row03.xlsx +0 -0
- data/test/regression/xlsx_files/set_start_page01.xlsx +0 -0
- data/test/regression/xlsx_files/set_start_page02.xlsx +0 -0
- data/test/regression/xlsx_files/set_start_page03.xlsx +0 -0
- data/test/regression/xlsx_files/shape01.xlsx +0 -0
- data/test/regression/xlsx_files/shape02.xlsx +0 -0
- data/test/regression/xlsx_files/shape03.xlsx +0 -0
- data/test/regression/xlsx_files/shape04.xlsx +0 -0
- data/test/regression/xlsx_files/shape_connect01.xlsx +0 -0
- data/test/regression/xlsx_files/shape_connect02.xlsx +0 -0
- data/test/regression/xlsx_files/shape_connect03.xlsx +0 -0
- data/test/regression/xlsx_files/shape_connect04.xlsx +0 -0
- data/test/regression/xlsx_files/shape_scale01.xlsx +0 -0
- data/test/regression/xlsx_files/shape_stencil01.xlsx +0 -0
- data/test/regression/xlsx_files/shared_strings01.xlsx +0 -0
- data/test/regression/xlsx_files/shared_strings02.xlsx +0 -0
- data/test/regression/xlsx_files/shared_strings_encoding.xlsx +0 -0
- data/test/regression/xlsx_files/simple01.xlsx +0 -0
- data/test/regression/xlsx_files/simple02.xlsx +0 -0
- data/test/regression/xlsx_files/simple03.xlsx +0 -0
- data/test/regression/xlsx_files/simple04.xlsx +0 -0
- data/test/regression/xlsx_files/simple05.xlsx +0 -0
- data/test/regression/xlsx_files/tab_color01.xlsx +0 -0
- data/test/regression/xlsx_files/table01.xlsx +0 -0
- data/test/regression/xlsx_files/table02.xlsx +0 -0
- data/test/regression/xlsx_files/table03.xlsx +0 -0
- data/test/regression/xlsx_files/table04.xlsx +0 -0
- data/test/regression/xlsx_files/table05.xlsx +0 -0
- data/test/regression/xlsx_files/table06.xlsx +0 -0
- data/test/regression/xlsx_files/table07.xlsx +0 -0
- data/test/regression/xlsx_files/table08.xlsx +0 -0
- data/test/regression/xlsx_files/table09.xlsx +0 -0
- data/test/regression/xlsx_files/table10.xlsx +0 -0
- data/test/regression/xlsx_files/table11.xlsx +0 -0
- data/test/regression/xlsx_files/table12.xlsx +0 -0
- data/test/regression/xlsx_files/table13.xlsx +0 -0
- data/test/regression/xlsx_files/table14.xlsx +0 -0
- data/test/regression/xlsx_files/table15.xlsx +0 -0
- data/test/regression/xlsx_files/table17.xlsx +0 -0
- data/test/regression/xlsx_files/table18.xlsx +0 -0
- data/test/regression/xlsx_files/table19.xlsx +0 -0
- data/test/regression/xlsx_files/table21.xlsx +0 -0
- data/test/regression/xlsx_files/table22.xlsx +0 -0
- data/test/regression/xlsx_files/table23.xlsx +0 -0
- data/test/regression/xlsx_files/table24.xlsx +0 -0
- data/test/regression/xlsx_files/table25.xlsx +0 -0
- data/test/regression/xlsx_files/table26.xlsx +0 -0
- data/test/regression/xlsx_files/tutorial01.xlsx +0 -0
- data/test/regression/xlsx_files/tutorial02.xlsx +0 -0
- data/test/regression/xlsx_files/tutorial03.xlsx +0 -0
- data/test/regression/xlsx_files/types02.xlsx +0 -0
- data/test/regression/xlsx_files/types08.xlsx +0 -0
- data/test/regression/xlsx_files/update_range_format_with_params.xlsx +0 -0
- data/test/regression/xlsx_files/urls_as_strings.xlsx +0 -0
- data/test/regression/xlsx_files/utf8_01.xlsx +0 -0
- data/test/regression/xlsx_files/utf8_03.xlsx +0 -0
- data/test/regression/xlsx_files/utf8_04.xlsx +0 -0
- data/test/regression/xlsx_files/utf8_05.xlsx +0 -0
- data/test/regression/xlsx_files/utf8_06.xlsx +0 -0
- data/test/regression/xlsx_files/utf8_07.xlsx +0 -0
- data/test/regression/xlsx_files/utf8_08.xlsx +0 -0
- data/test/regression/xlsx_files/utf8_09.xlsx +0 -0
- data/test/regression/xlsx_files/utf8_10.xlsx +0 -0
- data/test/regression/xlsx_files/utf8_11.xlsx +0 -0
- data/test/regression/xlsx_files/vbaProject01.bin +0 -0
- data/test/regression/xlsx_files/vbaProject02.bin +0 -0
- data/test/regression/xlsx_files/vml01.xlsx +0 -0
- data/test/regression/xlsx_files/vml02.xlsx +0 -0
- data/test/regression/xlsx_files/vml03.xlsx +0 -0
- data/test/regression/xlsx_files/vml04.xlsx +0 -0
- data/test/republic.png +0 -0
- data/test/run_test.rb +0 -9
- data/test/test_delete_files.rb +0 -37
- data/test/test_example_match.rb +0 -6348
- data/test/test_option_hash_for_workbook.rb +0 -72
- data/test/test_xml_writer_simple.rb +0 -64
- data/test/utility/test_range.rb +0 -20
- data/test/vbaProject.bin +0 -0
- data/test/workbook/test_check_sheetname.rb +0 -51
- data/test/workbook/test_define_name.rb +0 -16
- data/test/workbook/test_get_chart_range.rb +0 -57
- data/test/workbook/test_sort_defined_names.rb +0 -77
- data/test/workbook/test_workbook_01.rb +0 -29
- data/test/workbook/test_workbook_02.rb +0 -31
- data/test/workbook/test_workbook_03.rb +0 -31
- data/test/workbook/test_worksheet_by_name.rb +0 -35
- data/test/workbook/test_write_calc_pr.rb +0 -41
- data/test/workbook/test_write_defined_name.rb +0 -17
- data/test/workbook/test_write_defined_names.rb +0 -41
- data/test/workbook/test_write_workbook_view.rb +0 -117
- data/test/worksheet/test_calculate_spans.rb +0 -58
- data/test/worksheet/test_cond_format_01.rb +0 -82
- data/test/worksheet/test_cond_format_02.rb +0 -87
- data/test/worksheet/test_cond_format_03.rb +0 -97
- data/test/worksheet/test_cond_format_04.rb +0 -85
- data/test/worksheet/test_cond_format_05.rb +0 -96
- data/test/worksheet/test_cond_format_06.rb +0 -106
- data/test/worksheet/test_cond_format_07.rb +0 -116
- data/test/worksheet/test_cond_format_08.rb +0 -115
- data/test/worksheet/test_cond_format_09.rb +0 -108
- data/test/worksheet/test_cond_format_10.rb +0 -83
- data/test/worksheet/test_cond_format_11.rb +0 -85
- data/test/worksheet/test_cond_format_12.rb +0 -133
- data/test/worksheet/test_cond_format_13.rb +0 -135
- data/test/worksheet/test_cond_format_14.rb +0 -132
- data/test/worksheet/test_cond_format_15.rb +0 -93
- data/test/worksheet/test_cond_format_16.rb +0 -138
- data/test/worksheet/test_cond_format_17.rb +0 -141
- data/test/worksheet/test_cond_format_18.rb +0 -135
- data/test/worksheet/test_cond_format_19.rb +0 -139
- data/test/worksheet/test_cond_format_20.rb +0 -119
- data/test/worksheet/test_cond_format_21.rb +0 -90
- data/test/worksheet/test_cond_format_22.rb +0 -266
- data/test/worksheet/test_cond_format_23.rb +0 -242
- data/test/worksheet/test_cond_format_24.rb +0 -303
- data/test/worksheet/test_convert_date_time_01.rb +0 -439
- data/test/worksheet/test_convert_date_time_02.rb +0 -472
- data/test/worksheet/test_convert_date_time_03.rb +0 -435
- data/test/worksheet/test_convert_date_time_04.rb +0 -19
- data/test/worksheet/test_data_bar_01.rb +0 -53
- data/test/worksheet/test_data_bar_02.rb +0 -79
- data/test/worksheet/test_data_bar_03.rb +0 -147
- data/test/worksheet/test_data_bar_04.rb +0 -145
- data/test/worksheet/test_data_bar_05.rb +0 -147
- data/test/worksheet/test_data_bar_06.rb +0 -145
- data/test/worksheet/test_data_bar_07.rb +0 -146
- data/test/worksheet/test_data_bar_08.rb +0 -54
- data/test/worksheet/test_data_bar_09.rb +0 -80
- data/test/worksheet/test_data_bar_10.rb +0 -165
- data/test/worksheet/test_data_bar_11.rb +0 -167
- data/test/worksheet/test_data_bar_12.rb +0 -104
- data/test/worksheet/test_extract_filter_tokens.rb +0 -109
- data/test/worksheet/test_parse_filter_expression.rb +0 -143
- data/test/worksheet/test_pixels_to_row_col.rb +0 -46
- data/test/worksheet/test_position_object.rb +0 -50
- data/test/worksheet/test_repeat_formula.rb +0 -55
- data/test/worksheet/test_sparkline_01.rb +0 -65
- data/test/worksheet/test_sparkline_02.rb +0 -92
- data/test/worksheet/test_sparkline_03.rb +0 -133
- data/test/worksheet/test_sparkline_04.rb +0 -93
- data/test/worksheet/test_sparkline_05.rb +0 -93
- data/test/worksheet/test_sparkline_06.rb +0 -114
- data/test/worksheet/test_sparkline_07.rb +0 -357
- data/test/worksheet/test_sparkline_08.rb +0 -177
- data/test/worksheet/test_sparkline_09.rb +0 -1250
- data/test/worksheet/test_sparkline_10.rb +0 -107
- data/test/worksheet/test_sparkline_11.rb +0 -218
- data/test/worksheet/test_sparkline_12.rb +0 -94
- data/test/worksheet/test_update_format_methods.rb +0 -91
- data/test/worksheet/test_worksheet_01.rb +0 -32
- data/test/worksheet/test_worksheet_02.rb +0 -38
- data/test/worksheet/test_worksheet_03.rb +0 -44
- data/test/worksheet/test_worksheet_04.rb +0 -45
- data/test/worksheet/test_write_array_formula_01.rb +0 -98
- data/test/worksheet/test_write_autofilter.rb +0 -260
- data/test/worksheet/test_write_brk.rb +0 -18
- data/test/worksheet/test_write_cell.rb +0 -54
- data/test/worksheet/test_write_cell_value.rb +0 -33
- data/test/worksheet/test_write_col_breaks.rb +0 -27
- data/test/worksheet/test_write_col_info.rb +0 -95
- data/test/worksheet/test_write_conditional_formatting.rb +0 -72
- data/test/worksheet/test_write_custom_filter.rb +0 -18
- data/test/worksheet/test_write_custom_filters.rb +0 -25
- data/test/worksheet/test_write_data_validation_01.rb +0 -113
- data/test/worksheet/test_write_data_validation_02.rb +0 -585
- data/test/worksheet/test_write_dimension.rb +0 -94
- data/test/worksheet/test_write_filter.rb +0 -18
- data/test/worksheet/test_write_filter_column.rb +0 -18
- data/test/worksheet/test_write_filters.rb +0 -32
- data/test/worksheet/test_write_formula_does_not_change_formula_string.rb +0 -18
- data/test/worksheet/test_write_header_footer.rb +0 -58
- data/test/worksheet/test_write_hyperlink.rb +0 -32
- data/test/worksheet/test_write_legacy_drawing.rb +0 -19
- data/test/worksheet/test_write_merge_cell.rb +0 -18
- data/test/worksheet/test_write_merge_cells.rb +0 -192
- data/test/worksheet/test_write_methods.rb +0 -248
- data/test/worksheet/test_write_page_margins.rb +0 -98
- data/test/worksheet/test_write_page_set_up_pr.rb +0 -19
- data/test/worksheet/test_write_page_setup.rb +0 -54
- data/test/worksheet/test_write_pane.rb +0 -123
- data/test/worksheet/test_write_phonetic_pr.rb +0 -19
- data/test/worksheet/test_write_print_options.rb +0 -77
- data/test/worksheet/test_write_row_breaks.rb +0 -27
- data/test/worksheet/test_write_row_element.rb +0 -69
- data/test/worksheet/test_write_selection.rb +0 -18
- data/test/worksheet/test_write_sheet_calc_pr.rb +0 -18
- data/test/worksheet/test_write_sheet_data.rb +0 -18
- data/test/worksheet/test_write_sheet_format_pr.rb +0 -18
- data/test/worksheet/test_write_sheet_pr.rb +0 -36
- data/test/worksheet/test_write_sheet_protection.rb +0 -174
- data/test/worksheet/test_write_sheet_view.rb +0 -71
- data/test/worksheet/test_write_sheet_view1.rb +0 -64
- data/test/worksheet/test_write_sheet_view2.rb +0 -56
- data/test/worksheet/test_write_sheet_view3.rb +0 -83
- data/test/worksheet/test_write_sheet_view4.rb +0 -83
- data/test/worksheet/test_write_sheet_view5.rb +0 -74
- data/test/worksheet/test_write_sheet_view6.rb +0 -51
- data/test/worksheet/test_write_sheet_view7.rb +0 -71
- data/test/worksheet/test_write_sheet_view8.rb +0 -51
- data/test/worksheet/test_write_sheet_view9.rb +0 -51
- data/test/worksheet/test_write_tab_color.rb +0 -23
- data/test/worksheet/test_write_worksheet_attributes.rb +0 -21
data/lib/write_xlsx/worksheet.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
# frozen_string_literal: true
|
3
|
+
|
3
4
|
require 'write_xlsx/package/xml_writer_simple'
|
4
5
|
require 'write_xlsx/package/button'
|
5
6
|
require 'write_xlsx/colors'
|
@@ -36,7 +37,7 @@ module Writexlsx
|
|
36
37
|
attr_reader :vba_codename # :nodoc:
|
37
38
|
attr_writer :excel_version
|
38
39
|
|
39
|
-
def initialize(workbook, index, name)
|
40
|
+
def initialize(workbook, index, name) # :nodoc:
|
40
41
|
@writer = Package::XMLWriterSimple.new
|
41
42
|
|
42
43
|
@workbook = workbook
|
@@ -138,19 +139,19 @@ module Writexlsx
|
|
138
139
|
@original_row_height = 12.75
|
139
140
|
@default_row_height = 12.75
|
140
141
|
@default_row_pixels = 17
|
141
|
-
self
|
142
|
-
self
|
142
|
+
self.margins_left_right = 0.75
|
143
|
+
self.margins_top_bottom = 1
|
143
144
|
@page_setup.margin_header = 0.5
|
144
145
|
@page_setup.margin_footer = 0.5
|
145
146
|
@page_setup.header_footer_aligns = false
|
146
147
|
end
|
147
148
|
end
|
148
149
|
|
149
|
-
def set_xml_writer(filename)
|
150
|
+
def set_xml_writer(filename) # :nodoc:
|
150
151
|
@writer.set_xml_writer(filename)
|
151
152
|
end
|
152
153
|
|
153
|
-
def assemble_xml_file
|
154
|
+
def assemble_xml_file # :nodoc:
|
154
155
|
write_xml_declaration do
|
155
156
|
@writer.tag_elements('worksheet', write_worksheet_attributes) do
|
156
157
|
write_sheet_pr
|
@@ -188,9 +189,7 @@ module Writexlsx
|
|
188
189
|
#
|
189
190
|
# The name method is used to retrieve the name of a worksheet.
|
190
191
|
#
|
191
|
-
|
192
|
-
@name
|
193
|
-
end
|
192
|
+
attr_reader :name
|
194
193
|
|
195
194
|
#
|
196
195
|
# Set this worksheet as a selected worksheet, i.e. the worksheet has its tab
|
@@ -244,8 +243,10 @@ module Writexlsx
|
|
244
243
|
@protect = protect_default_settings.merge(options)
|
245
244
|
|
246
245
|
# Set the password after the user defined values.
|
247
|
-
|
248
|
-
|
246
|
+
if password && password != ''
|
247
|
+
@protect[:password] =
|
248
|
+
encode_password(password)
|
249
|
+
end
|
249
250
|
end
|
250
251
|
|
251
252
|
#
|
@@ -300,7 +301,7 @@ module Writexlsx
|
|
300
301
|
def set_column(*args)
|
301
302
|
# Check for a cell reference in A1 notation and substitute row and column
|
302
303
|
if args[0].to_s =~ /^\D/
|
303
|
-
|
304
|
+
_row1, firstcol, _row2, lastcol, *data = substitute_cellref(*args)
|
304
305
|
else
|
305
306
|
firstcol, lastcol, *data = args
|
306
307
|
end
|
@@ -342,9 +343,9 @@ module Writexlsx
|
|
342
343
|
|
343
344
|
# Store the col sizes for use when calculating image vertices taking
|
344
345
|
# hidden columns into account. Also store the column formats.
|
345
|
-
width
|
346
|
+
width ||= @default_col_width
|
346
347
|
|
347
|
-
(firstcol
|
348
|
+
(firstcol..lastcol).each do |col|
|
348
349
|
@col_sizes[col] = [width, hidden]
|
349
350
|
@col_formats[col] = format if format
|
350
351
|
end
|
@@ -376,9 +377,7 @@ module Writexlsx
|
|
376
377
|
hidden = data[4] || 0
|
377
378
|
level = data[5]
|
378
379
|
|
379
|
-
if ptrue?(pixels)
|
380
|
-
width = pixels_to_width(pixels)
|
381
|
-
end
|
380
|
+
width = pixels_to_width(pixels) if ptrue?(pixels)
|
382
381
|
|
383
382
|
set_column(first_col, last_col, width, format, hidden, level)
|
384
383
|
end
|
@@ -408,7 +407,7 @@ module Writexlsx
|
|
408
407
|
# Selection isn't set for cell A1.
|
409
408
|
return if sqref == 'A1'
|
410
409
|
|
411
|
-
@selections = [
|
410
|
+
@selections = [[nil, active_cell, sqref]]
|
412
411
|
end
|
413
412
|
|
414
413
|
#
|
@@ -431,7 +430,7 @@ module Writexlsx
|
|
431
430
|
left_col ||= col
|
432
431
|
type ||= 0
|
433
432
|
|
434
|
-
@panes = [row, col, top_row, left_col, type
|
433
|
+
@panes = [row, col, top_row, left_col, type]
|
435
434
|
end
|
436
435
|
|
437
436
|
#
|
@@ -492,7 +491,7 @@ module Writexlsx
|
|
492
491
|
|
493
492
|
def set_paper(paper_size)
|
494
493
|
put_deprecate_message("#{self}.set_paper")
|
495
|
-
self
|
494
|
+
self.paper = paper_size
|
496
495
|
end
|
497
496
|
|
498
497
|
#
|
@@ -500,26 +499,21 @@ module Writexlsx
|
|
500
499
|
#
|
501
500
|
def set_header(string = '', margin = 0.3, options = {})
|
502
501
|
raise 'Header string must be less than 255 characters' if string.length > 255
|
502
|
+
|
503
503
|
# Replace the Excel placeholder &[Picture] with the internal &G.
|
504
504
|
@page_setup.header = string.gsub(/&\[Picture\]/, '&G')
|
505
505
|
|
506
|
-
if options[:align_with_margins]
|
507
|
-
@page_setup.header_footer_aligns = options[:align_with_margins]
|
508
|
-
end
|
506
|
+
@page_setup.header_footer_aligns = options[:align_with_margins] if options[:align_with_margins]
|
509
507
|
|
510
|
-
if options[:scale_with_doc]
|
511
|
-
@page_setup.header_footer_scales = options[:scale_with_doc]
|
512
|
-
end
|
508
|
+
@page_setup.header_footer_scales = options[:scale_with_doc] if options[:scale_with_doc]
|
513
509
|
|
514
510
|
# Reset the array in case the function is called more than once.
|
515
511
|
@header_images = []
|
516
512
|
|
517
513
|
[
|
518
|
-
|
514
|
+
[:image_left, 'LH'], [:image_center, 'CH'], [:image_right, 'RH']
|
519
515
|
].each do |p|
|
520
|
-
if options[p.first]
|
521
|
-
@header_images << [options[p.first], p.last]
|
522
|
-
end
|
516
|
+
@header_images << [options[p.first], p.last] if options[p.first]
|
523
517
|
end
|
524
518
|
|
525
519
|
# placeholeder /&G/ の数
|
@@ -527,9 +521,7 @@ module Writexlsx
|
|
527
521
|
|
528
522
|
image_count = @header_images.count
|
529
523
|
|
530
|
-
if image_count != placeholder_count
|
531
|
-
raise "Number of header image (#{image_count}) doesn't match placeholder count (#{placeholder_count}) in string: #{@page_setup.header}"
|
532
|
-
end
|
524
|
+
raise "Number of header image (#{image_count}) doesn't match placeholder count (#{placeholder_count}) in string: #{@page_setup.header}" if image_count != placeholder_count
|
533
525
|
|
534
526
|
@has_header_vml = true if image_count > 0
|
535
527
|
|
@@ -543,28 +535,22 @@ module Writexlsx
|
|
543
535
|
def set_footer(string = '', margin = 0.3, options = {})
|
544
536
|
raise 'Footer string must be less than 255 characters' if string.length > 255
|
545
537
|
|
546
|
-
@page_setup.footer
|
538
|
+
@page_setup.footer = string.dup
|
547
539
|
|
548
540
|
# Replace the Excel placeholder &[Picture] with the internal &G.
|
549
541
|
@page_setup.footer = string.gsub(/&\[Picture\]/, '&G')
|
550
542
|
|
551
|
-
if options[:align_with_margins]
|
552
|
-
@page_setup.header_footer_aligns = options[:align_with_margins]
|
553
|
-
end
|
543
|
+
@page_setup.header_footer_aligns = options[:align_with_margins] if options[:align_with_margins]
|
554
544
|
|
555
|
-
if options[:scale_with_doc]
|
556
|
-
@page_setup.header_footer_scales = options[:scale_with_doc]
|
557
|
-
end
|
545
|
+
@page_setup.header_footer_scales = options[:scale_with_doc] if options[:scale_with_doc]
|
558
546
|
|
559
547
|
# Reset the array in case the function is called more than once.
|
560
548
|
@footer_images = []
|
561
549
|
|
562
550
|
[
|
563
|
-
|
551
|
+
[:image_left, 'LF'], [:image_center, 'CF'], [:image_right, 'RF']
|
564
552
|
].each do |p|
|
565
|
-
if options[p.first]
|
566
|
-
@footer_images << [options[p.first], p.last]
|
567
|
-
end
|
553
|
+
@footer_images << [options[p.first], p.last] if options[p.first]
|
568
554
|
end
|
569
555
|
|
570
556
|
# placeholeder /&G/ の数
|
@@ -572,9 +558,7 @@ module Writexlsx
|
|
572
558
|
|
573
559
|
image_count = @footer_images.count
|
574
560
|
|
575
|
-
if image_count != placeholder_count
|
576
|
-
raise "Number of footer image (#{image_count}) doesn't match placeholder count (#{placeholder_count}) in string: #{@page_setup.footer}"
|
577
|
-
end
|
561
|
+
raise "Number of footer image (#{image_count}) doesn't match placeholder count (#{placeholder_count}) in string: #{@page_setup.footer}" if image_count != placeholder_count
|
578
562
|
|
579
563
|
@has_header_vml = true if image_count > 0
|
580
564
|
|
@@ -600,10 +584,10 @@ module Writexlsx
|
|
600
584
|
# Set all the page margins to the same value in inches.
|
601
585
|
#
|
602
586
|
def margins=(margin)
|
603
|
-
self
|
604
|
-
self
|
605
|
-
self
|
606
|
-
self
|
587
|
+
self.margin_left = margin
|
588
|
+
self.margin_right = margin
|
589
|
+
self.margin_top = margin
|
590
|
+
self.margin_bottom = margin
|
607
591
|
end
|
608
592
|
|
609
593
|
#
|
@@ -611,8 +595,8 @@ module Writexlsx
|
|
611
595
|
# See set_margins
|
612
596
|
#
|
613
597
|
def margins_left_right=(margin)
|
614
|
-
self
|
615
|
-
self
|
598
|
+
self.margin_left = margin
|
599
|
+
self.margin_right = margin
|
616
600
|
end
|
617
601
|
|
618
602
|
#
|
@@ -620,8 +604,8 @@ module Writexlsx
|
|
620
604
|
# See set_margins
|
621
605
|
#
|
622
606
|
def margins_top_bottom=(margin)
|
623
|
-
self
|
624
|
-
self
|
607
|
+
self.margin_top = margin
|
608
|
+
self.margin_bottom = margin
|
625
609
|
end
|
626
610
|
|
627
611
|
#
|
@@ -661,7 +645,7 @@ module Writexlsx
|
|
661
645
|
#
|
662
646
|
def set_margins(margin)
|
663
647
|
put_deprecate_message("#{self}.set_margins")
|
664
|
-
self
|
648
|
+
self.margins = margin
|
665
649
|
end
|
666
650
|
|
667
651
|
#
|
@@ -670,7 +654,7 @@ module Writexlsx
|
|
670
654
|
#
|
671
655
|
def set_margins_LR(margin)
|
672
656
|
put_deprecate_message("#{self}.set_margins_LR")
|
673
|
-
self
|
657
|
+
self.margins_left_right = margin
|
674
658
|
end
|
675
659
|
|
676
660
|
#
|
@@ -679,7 +663,7 @@ module Writexlsx
|
|
679
663
|
#
|
680
664
|
def set_margins_TB(margin)
|
681
665
|
put_deprecate_message("#{self}.set_margins_TB")
|
682
|
-
self
|
666
|
+
self.margins_top_bottom = margin
|
683
667
|
end
|
684
668
|
|
685
669
|
#
|
@@ -688,7 +672,7 @@ module Writexlsx
|
|
688
672
|
#
|
689
673
|
def set_margin_left(margin = 0.7)
|
690
674
|
put_deprecate_message("#{self}.set_margin_left")
|
691
|
-
self
|
675
|
+
self.margin_left = margin
|
692
676
|
end
|
693
677
|
|
694
678
|
#
|
@@ -697,7 +681,7 @@ module Writexlsx
|
|
697
681
|
#
|
698
682
|
def set_margin_right(margin = 0.7)
|
699
683
|
put_deprecate_message("#{self}.set_margin_right")
|
700
|
-
self
|
684
|
+
self.margin_right = margin
|
701
685
|
end
|
702
686
|
|
703
687
|
#
|
@@ -706,7 +690,7 @@ module Writexlsx
|
|
706
690
|
#
|
707
691
|
def set_margin_top(margin = 0.75)
|
708
692
|
put_deprecate_message("#{self}.set_margin_top")
|
709
|
-
self
|
693
|
+
self.margin_top = margin
|
710
694
|
end
|
711
695
|
|
712
696
|
#
|
@@ -715,7 +699,7 @@ module Writexlsx
|
|
715
699
|
#
|
716
700
|
def set_margin_bottom(margin = 0.75)
|
717
701
|
put_deprecate_message("#{self}.set_margin_bottom")
|
718
|
-
self
|
702
|
+
self.margin_bottom = margin
|
719
703
|
end
|
720
704
|
|
721
705
|
#
|
@@ -747,7 +731,7 @@ module Writexlsx
|
|
747
731
|
#
|
748
732
|
def repeat_columns(*args)
|
749
733
|
if args[0] =~ /^\D/
|
750
|
-
|
734
|
+
_dummy, first_col, _dummy, last_col = substitute_cellref(*args)
|
751
735
|
else
|
752
736
|
first_col, last_col = args
|
753
737
|
end
|
@@ -771,13 +755,12 @@ module Writexlsx
|
|
771
755
|
#
|
772
756
|
def print_area(*args)
|
773
757
|
return @page_setup.print_area.dup if args.empty?
|
758
|
+
|
774
759
|
row1, col1, row2, col2 = row_col_notation(args)
|
775
760
|
return if [row1, col1, row2, col2].include?(nil)
|
776
761
|
|
777
762
|
# Ignore max print area since this is the same as no print area for Excel.
|
778
|
-
if row1 == 0 && col1 == 0 && row2 == ROW_MAX - 1 && col2 == COL_MAX - 1
|
779
|
-
return
|
780
|
-
end
|
763
|
+
return if row1 == 0 && col1 == 0 && row2 == ROW_MAX - 1 && col2 == COL_MAX - 1
|
781
764
|
|
782
765
|
# Build up the print area range "=Sheet2!R1C1:R2C1"
|
783
766
|
@page_setup.print_area = convert_name_area(row1, col1, row2, col2)
|
@@ -788,12 +771,12 @@ module Writexlsx
|
|
788
771
|
#
|
789
772
|
def zoom=(scale)
|
790
773
|
# Confine the scale to Excel's range
|
791
|
-
if scale < 10 or scale > 400
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
774
|
+
@zoom = if scale < 10 or scale > 400
|
775
|
+
# carp "Zoom factor scale outside range: 10 <= zoom <= 400"
|
776
|
+
100
|
777
|
+
else
|
778
|
+
scale.to_i
|
779
|
+
end
|
797
780
|
end
|
798
781
|
|
799
782
|
# This method is deprecated. use zoom=().
|
@@ -823,23 +806,23 @@ module Writexlsx
|
|
823
806
|
#
|
824
807
|
def set_print_scale(scale = 100)
|
825
808
|
put_deprecate_message("#{self}.set_print_scale")
|
826
|
-
self
|
809
|
+
self.print_scale = (scale)
|
827
810
|
end
|
828
811
|
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
812
|
+
#
|
813
|
+
# Set the option to print the worksheet in black and white.
|
814
|
+
#
|
815
|
+
def print_black_and_white
|
816
|
+
@page_setup.black_white = true
|
834
817
|
end
|
835
818
|
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
819
|
+
#
|
820
|
+
# Causes the write() method to treat integers with a leading zero as a string.
|
821
|
+
# This ensures that any leading zeros such, as in zip codes, are maintained.
|
822
|
+
#
|
823
|
+
def keep_leading_zeros(flag = true)
|
824
|
+
@leading_zeros = !!flag
|
825
|
+
end
|
843
826
|
|
844
827
|
#
|
845
828
|
# Display the worksheet right to left for some eastern versions of Excel.
|
@@ -852,7 +835,7 @@ module Writexlsx
|
|
852
835
|
# Hide cell zero values.
|
853
836
|
#
|
854
837
|
def hide_zero(flag = true)
|
855
|
-
|
838
|
+
@show_zeros = !flag
|
856
839
|
end
|
857
840
|
|
858
841
|
#
|
@@ -877,7 +860,7 @@ module Writexlsx
|
|
877
860
|
|
878
861
|
def set_start_page(page_start)
|
879
862
|
put_deprecate_message("#{self}.set_start_page")
|
880
|
-
self
|
863
|
+
self.start_page = page_start
|
881
864
|
end
|
882
865
|
|
883
866
|
#
|
@@ -893,6 +876,7 @@ module Writexlsx
|
|
893
876
|
# Check for a cell reference in A1 notation and substitute row and column
|
894
877
|
row_col_args = row_col_notation(args)
|
895
878
|
token = row_col_args[2] || ''
|
879
|
+
token = token.to_s if token.instance_of?(Time)
|
896
880
|
|
897
881
|
# Match an array ref.
|
898
882
|
if token.respond_to?(:to_ary)
|
@@ -916,13 +900,13 @@ module Writexlsx
|
|
916
900
|
write_blank(*row_col_args)
|
917
901
|
elsif @workbook.strings_to_urls
|
918
902
|
# Match http, https or ftp URL
|
919
|
-
if token =~ %r
|
903
|
+
if token =~ %r{\A[fh]tt?ps?://}
|
920
904
|
write_url(*args)
|
921
905
|
# Match mailto:
|
922
|
-
elsif token =~
|
906
|
+
elsif token =~ /\Amailto:/
|
923
907
|
write_url(*args)
|
924
908
|
# Match internal or external sheet link
|
925
|
-
elsif token =~
|
909
|
+
elsif token =~ /\A(?:in|ex)ternal:/
|
926
910
|
write_url(*args)
|
927
911
|
else
|
928
912
|
write_string(*args)
|
@@ -1054,7 +1038,7 @@ module Writexlsx
|
|
1054
1038
|
check_dimensions(row, col)
|
1055
1039
|
store_row_col_max_min_values(row, col)
|
1056
1040
|
|
1057
|
-
fragments,
|
1041
|
+
fragments, _length = rich_strings_fragments(rich_strings)
|
1058
1042
|
# can't allow 2 formats in a row
|
1059
1043
|
return -4 unless fragments
|
1060
1044
|
|
@@ -1128,11 +1112,11 @@ module Writexlsx
|
|
1128
1112
|
store_row_col_max_min_values(row2, col2)
|
1129
1113
|
|
1130
1114
|
# Define array range
|
1131
|
-
if row1 == row2 && col1 == col2
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1115
|
+
range = if row1 == row2 && col1 == col2
|
1116
|
+
xl_rowcol_to_cell(row1, col1)
|
1117
|
+
else
|
1118
|
+
"#{xl_rowcol_to_cell(row1, col1)}:#{xl_rowcol_to_cell(row2, col2)}"
|
1119
|
+
end
|
1136
1120
|
|
1137
1121
|
# Remove array formula braces and the leading =.
|
1138
1122
|
formula = formula.sub(/^\{(.*)\}$/, '\1').sub(/^=/, '')
|
@@ -1151,6 +1135,7 @@ module Writexlsx
|
|
1151
1135
|
(row1..row2).each do |row|
|
1152
1136
|
(col1..col2).each do |col|
|
1153
1137
|
next if row == row1 && col == col1
|
1138
|
+
|
1154
1139
|
write_number(row, col, 0, xf)
|
1155
1140
|
end
|
1156
1141
|
end
|
@@ -1186,7 +1171,6 @@ module Writexlsx
|
|
1186
1171
|
|
1187
1172
|
val = val ? 1 : 0 # Boolean value.
|
1188
1173
|
# xf : cell format.
|
1189
|
-
type = 'l' # The data type
|
1190
1174
|
|
1191
1175
|
# Check that row and col are valid and store max and min values
|
1192
1176
|
check_dimensions(row, col)
|
@@ -1225,15 +1209,15 @@ module Writexlsx
|
|
1225
1209
|
format.set_format_properties(params)
|
1226
1210
|
end
|
1227
1211
|
# keep original value of cell
|
1228
|
-
if cell_data.is_a? FormulaCellData
|
1229
|
-
|
1230
|
-
|
1231
|
-
|
1232
|
-
|
1233
|
-
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1212
|
+
value = if cell_data.is_a? FormulaCellData
|
1213
|
+
"=#{cell_data.token}"
|
1214
|
+
elsif cell_data.is_a? FormulaArrayCellData
|
1215
|
+
"{=#{cell_data.token}}"
|
1216
|
+
elsif cell_data.is_a? StringCellData
|
1217
|
+
@workbook.shared_strings.string(cell_data.data[:sst_id])
|
1218
|
+
else
|
1219
|
+
cell_data.data
|
1220
|
+
end
|
1237
1221
|
write(row, col, value, format)
|
1238
1222
|
end
|
1239
1223
|
end
|
@@ -1250,7 +1234,7 @@ module Writexlsx
|
|
1250
1234
|
raise WriteXLSXInsufficientArgumentError if [row_first, col_first, row_last, col_last, params].include?(nil)
|
1251
1235
|
|
1252
1236
|
# Swap last row/col with first row/col as necessary
|
1253
|
-
row_first, row_last
|
1237
|
+
row_first, row_last = row_last, row_first if row_first > row_last
|
1254
1238
|
col_first, col_last = col_last, col_first if col_first > col_last
|
1255
1239
|
|
1256
1240
|
# Check that column number is valid and store the max value
|
@@ -1309,12 +1293,10 @@ module Writexlsx
|
|
1309
1293
|
hyperlink = Hyperlink.factory(url, str, tip)
|
1310
1294
|
store_hyperlink(row, col, hyperlink)
|
1311
1295
|
|
1312
|
-
if hyperlinks_count > 65_530
|
1313
|
-
raise "URL '#{url}' added but URL exceeds Excel's limit of 65,530 URLs per worksheet."
|
1314
|
-
end
|
1296
|
+
raise "URL '#{url}' added but URL exceeds Excel's limit of 65,530 URLs per worksheet." if hyperlinks_count > 65_530
|
1315
1297
|
|
1316
1298
|
# Add the default URL format.
|
1317
|
-
xf
|
1299
|
+
xf ||= @default_url_format
|
1318
1300
|
|
1319
1301
|
# Write the hyperlink string.
|
1320
1302
|
write_string(row, col, hyperlink.str, xf)
|
@@ -1359,7 +1341,7 @@ module Writexlsx
|
|
1359
1341
|
row, col, chart, *options = row_col_notation(args)
|
1360
1342
|
raise WriteXLSXInsufficientArgumentError if [row, col, chart].include?(nil)
|
1361
1343
|
|
1362
|
-
if options.first.
|
1344
|
+
if options.first.instance_of?(Hash)
|
1363
1345
|
params = options.first
|
1364
1346
|
x_offset = params[:x_offset]
|
1365
1347
|
y_offset = params[:y_offset]
|
@@ -1404,7 +1386,7 @@ module Writexlsx
|
|
1404
1386
|
row, col, image, *options = row_col_notation(args)
|
1405
1387
|
raise WriteXLSXInsufficientArgumentError if [row, col, image].include?(nil)
|
1406
1388
|
|
1407
|
-
if options.first.
|
1389
|
+
if options.first.instance_of?(Hash)
|
1408
1390
|
# Newer hash bashed options
|
1409
1391
|
params = options.first
|
1410
1392
|
x_offset = params[:x_offset]
|
@@ -1443,7 +1425,7 @@ module Writexlsx
|
|
1443
1425
|
row, col, formula, format, *pairs = row_col_notation(args)
|
1444
1426
|
raise WriteXLSXInsufficientArgumentError if [row, col].include?(nil)
|
1445
1427
|
|
1446
|
-
raise "Odd number of elements in pattern/replacement list" unless pairs.size
|
1428
|
+
raise "Odd number of elements in pattern/replacement list" unless pairs.size.even?
|
1447
1429
|
raise "Not a valid formula" unless formula.respond_to?(:to_ary)
|
1448
1430
|
|
1449
1431
|
tokens = formula.join("\t").split("\t")
|
@@ -1454,7 +1436,7 @@ module Writexlsx
|
|
1454
1436
|
value = pairs.pop
|
1455
1437
|
pairs.pop
|
1456
1438
|
end
|
1457
|
-
|
1439
|
+
until pairs.empty?
|
1458
1440
|
pattern = pairs.shift
|
1459
1441
|
replace = pairs.shift
|
1460
1442
|
|
@@ -1475,6 +1457,7 @@ module Writexlsx
|
|
1475
1457
|
#
|
1476
1458
|
def set_row(*args)
|
1477
1459
|
return unless args[0]
|
1460
|
+
|
1478
1461
|
row = args[0]
|
1479
1462
|
height = args[1] || @default_height
|
1480
1463
|
xf = args[2]
|
@@ -1541,9 +1524,7 @@ module Writexlsx
|
|
1541
1524
|
@row_size_changed = 1
|
1542
1525
|
end
|
1543
1526
|
|
1544
|
-
if ptrue?(zero_height)
|
1545
|
-
@default_row_zeroed = 1
|
1546
|
-
end
|
1527
|
+
@default_row_zeroed = 1 if ptrue?(zero_height)
|
1547
1528
|
end
|
1548
1529
|
|
1549
1530
|
#
|
@@ -1560,7 +1541,7 @@ module Writexlsx
|
|
1560
1541
|
raise "Can't merge single cell" if row_first == row_last && col_first == col_last
|
1561
1542
|
|
1562
1543
|
# Swap last row/col with first row/col as necessary
|
1563
|
-
row_first, row_last
|
1544
|
+
row_first, row_last = row_last, row_first if row_first > row_last
|
1564
1545
|
col_first, col_last = col_last, col_first if col_first > col_last
|
1565
1546
|
|
1566
1547
|
# Check that the data range is valid and store the max and min values.
|
@@ -1683,7 +1664,7 @@ module Writexlsx
|
|
1683
1664
|
# into a worksheet.
|
1684
1665
|
#
|
1685
1666
|
def insert_button(*args)
|
1686
|
-
@buttons_array << button_params(*
|
1667
|
+
@buttons_array << button_params(*row_col_notation(args))
|
1687
1668
|
@has_vml = 1
|
1688
1669
|
end
|
1689
1670
|
|
@@ -1705,11 +1686,7 @@ module Writexlsx
|
|
1705
1686
|
# Set the option to hide gridlines on the screen and the printed page.
|
1706
1687
|
#
|
1707
1688
|
def hide_gridlines(option = 1)
|
1708
|
-
|
1709
|
-
@screen_gridlines = false
|
1710
|
-
else
|
1711
|
-
@screen_gridlines = true
|
1712
|
-
end
|
1689
|
+
@screen_gridlines = (option != 2)
|
1713
1690
|
|
1714
1691
|
@page_setup.hide_gridlines(option)
|
1715
1692
|
end
|
@@ -1743,7 +1720,7 @@ module Writexlsx
|
|
1743
1720
|
def fit_to_pages(width = 1, height = 1)
|
1744
1721
|
@page_setup.fit_page = true
|
1745
1722
|
@page_setup.fit_width = width
|
1746
|
-
@page_setup.fit_height
|
1723
|
+
@page_setup.fit_height = height
|
1747
1724
|
@page_setup.page_setup_changed = true
|
1748
1725
|
end
|
1749
1726
|
|
@@ -1779,9 +1756,7 @@ module Writexlsx
|
|
1779
1756
|
|
1780
1757
|
tokens = extract_filter_tokens(expression)
|
1781
1758
|
|
1782
|
-
unless tokens.size == 3 || tokens.size == 7
|
1783
|
-
raise "Incorrect number of tokens in expression '#{expression}'"
|
1784
|
-
end
|
1759
|
+
raise "Incorrect number of tokens in expression '#{expression}'" unless tokens.size == 3 || tokens.size == 7
|
1785
1760
|
|
1786
1761
|
tokens = parse_filter_expression(expression, tokens)
|
1787
1762
|
|
@@ -1891,7 +1866,7 @@ module Writexlsx
|
|
1891
1866
|
def prepare_chart(index, chart_id, drawing_id) # :nodoc:
|
1892
1867
|
drawing_type = 1
|
1893
1868
|
|
1894
|
-
row, col, chart, x_offset, y_offset, x_scale, y_scale, anchor
|
1869
|
+
row, col, chart, x_offset, y_offset, x_scale, y_scale, anchor = @charts[index]
|
1895
1870
|
chart.id = chart_id - 1
|
1896
1871
|
x_scale ||= 0
|
1897
1872
|
y_scale ||= 0
|
@@ -1910,14 +1885,14 @@ module Writexlsx
|
|
1910
1885
|
|
1911
1886
|
# Create a Drawing object to use with worksheet unless one already exists.
|
1912
1887
|
drawing = Drawing.new(drawing_type, dimensions, 0, 0, name, nil, anchor, drawing_rel_index, 0, nil, 0)
|
1913
|
-
if
|
1888
|
+
if drawings?
|
1889
|
+
@drawings.add_drawing_object(drawing)
|
1890
|
+
else
|
1914
1891
|
@drawings = Drawings.new
|
1915
1892
|
@drawings.add_drawing_object(drawing)
|
1916
1893
|
@drawings.embedded = 1
|
1917
1894
|
|
1918
|
-
@external_drawing_links << ['/drawing', "../drawings/drawing#{drawing_id}.xml"
|
1919
|
-
else
|
1920
|
-
@drawings.add_drawing_object(drawing)
|
1895
|
+
@external_drawing_links << ['/drawing', "../drawings/drawing#{drawing_id}.xml"]
|
1921
1896
|
end
|
1922
1897
|
@drawing_links << ['/chart', "../charts/chart#{chart_id}.xml"]
|
1923
1898
|
end
|
@@ -1933,31 +1908,31 @@ module Writexlsx
|
|
1933
1908
|
|
1934
1909
|
# Iterate through the table data.
|
1935
1910
|
data = []
|
1936
|
-
(row_start
|
1911
|
+
(row_start..row_end).each do |row_num|
|
1937
1912
|
# Store nil if row doesn't exist.
|
1938
|
-
|
1913
|
+
unless @cell_data_table[row_num]
|
1939
1914
|
data << nil
|
1940
1915
|
next
|
1941
1916
|
end
|
1942
1917
|
|
1943
|
-
(col_start
|
1944
|
-
|
1918
|
+
(col_start..col_end).each do |col_num|
|
1919
|
+
cell = @cell_data_table[row_num][col_num]
|
1920
|
+
if cell
|
1945
1921
|
data << cell.data
|
1946
1922
|
else
|
1947
|
-
# Store nil if col doesn't exist.
|
1948
1923
|
data << nil
|
1949
1924
|
end
|
1950
1925
|
end
|
1951
1926
|
end
|
1952
1927
|
|
1953
|
-
|
1928
|
+
data
|
1954
1929
|
end
|
1955
1930
|
|
1956
1931
|
#
|
1957
1932
|
# Calculate the vertices that define the position of a graphical object within
|
1958
1933
|
# the worksheet in pixels.
|
1959
1934
|
#
|
1960
|
-
def position_object_pixels(col_start, row_start, x1, y1, width, height, anchor = nil)
|
1935
|
+
def position_object_pixels(col_start, row_start, x1, y1, width, height, anchor = nil) # :nodoc:
|
1961
1936
|
# Adjust start column for negative offsets.
|
1962
1937
|
while x1 < 0 && col_start > 0
|
1963
1938
|
x1 += size_col(col_start - 1)
|
@@ -1975,22 +1950,22 @@ module Writexlsx
|
|
1975
1950
|
y1 = 0 if y1 < 0
|
1976
1951
|
|
1977
1952
|
# Calculate the absolute x offset of the top-left vertex.
|
1978
|
-
if @col_size_changed
|
1979
|
-
|
1980
|
-
|
1981
|
-
|
1982
|
-
|
1983
|
-
|
1953
|
+
x_abs = if @col_size_changed
|
1954
|
+
(0..col_start - 1).inject(0) { |sum, col| sum += size_col(col, anchor) }
|
1955
|
+
else
|
1956
|
+
# Optimisation for when the column widths haven't changed.
|
1957
|
+
@default_col_pixels * col_start
|
1958
|
+
end
|
1984
1959
|
x_abs += x1
|
1985
1960
|
|
1986
1961
|
# Calculate the absolute y offset of the top-left vertex.
|
1987
1962
|
# Store the column change to allow optimisations.
|
1988
|
-
if @row_size_changed
|
1989
|
-
|
1990
|
-
|
1991
|
-
|
1992
|
-
|
1993
|
-
|
1963
|
+
y_abs = if @row_size_changed
|
1964
|
+
(0..row_start - 1).inject(0) { |sum, row| sum += size_row(row, anchor) }
|
1965
|
+
else
|
1966
|
+
# Optimisation for when the row heights haven't changed.
|
1967
|
+
@default_row_pixels * row_start
|
1968
|
+
end
|
1994
1969
|
y_abs += y1
|
1995
1970
|
|
1996
1971
|
# Adjust start column for offsets that are greater than the col width.
|
@@ -2043,7 +2018,7 @@ module Writexlsx
|
|
2043
2018
|
#
|
2044
2019
|
# Write the cell value <v> element.
|
2045
2020
|
#
|
2046
|
-
def write_cell_value(value = '')
|
2021
|
+
def write_cell_value(value = '') # :nodoc:
|
2047
2022
|
return write_cell_formula('=NA()') if !value.nil? && value.is_a?(Float) && value.nan?
|
2048
2023
|
|
2049
2024
|
value ||= ''
|
@@ -2054,24 +2029,24 @@ module Writexlsx
|
|
2054
2029
|
#
|
2055
2030
|
# Write the cell formula <f> element.
|
2056
2031
|
#
|
2057
|
-
def write_cell_formula(formula = '')
|
2032
|
+
def write_cell_formula(formula = '') # :nodoc:
|
2058
2033
|
@writer.data_element('f', formula)
|
2059
2034
|
end
|
2060
2035
|
|
2061
2036
|
#
|
2062
2037
|
# Write the cell array formula <f> element.
|
2063
2038
|
#
|
2064
|
-
def write_cell_array_formula(formula, range)
|
2039
|
+
def write_cell_array_formula(formula, range) # :nodoc:
|
2065
2040
|
@writer.data_element(
|
2066
2041
|
'f', formula,
|
2067
2042
|
[
|
2068
|
-
[
|
2043
|
+
%w[t array],
|
2069
2044
|
['ref', range]
|
2070
2045
|
]
|
2071
2046
|
)
|
2072
2047
|
end
|
2073
2048
|
|
2074
|
-
def date_1904?
|
2049
|
+
def date_1904? # :nodoc:
|
2075
2050
|
@workbook.date_1904?
|
2076
2051
|
end
|
2077
2052
|
|
@@ -2083,9 +2058,9 @@ module Writexlsx
|
|
2083
2058
|
# Convert from an Excel internal colour index to a XML style #RRGGBB index
|
2084
2059
|
# based on the default or user defined values in the Workbook palette.
|
2085
2060
|
#
|
2086
|
-
def palette_color(index)
|
2061
|
+
def palette_color(index) # :nodoc:
|
2087
2062
|
if index.to_s =~ /^#([0-9A-F]{6})$/i
|
2088
|
-
"FF#{
|
2063
|
+
"FF#{::Regexp.last_match(1).upcase}"
|
2089
2064
|
else
|
2090
2065
|
"FF#{super(index)}"
|
2091
2066
|
end
|
@@ -2125,7 +2100,7 @@ module Writexlsx
|
|
2125
2100
|
# The VML o:idmap data id contains a comma separated range when there is
|
2126
2101
|
# more than one 1024 block of comments, like this: data="1,2".
|
2127
2102
|
data = "#{vml_data_id}"
|
2128
|
-
(1
|
2103
|
+
(1..num_comments_block).each do |i|
|
2129
2104
|
data += ",#{vml_data_id + i}"
|
2130
2105
|
end
|
2131
2106
|
@vml_data_id = data
|
@@ -2183,11 +2158,7 @@ module Writexlsx
|
|
2183
2158
|
# set the vba name for the worksheet
|
2184
2159
|
#
|
2185
2160
|
def set_vba_name(vba_codename = nil)
|
2186
|
-
|
2187
|
-
@vba_codename = vba_codename
|
2188
|
-
else
|
2189
|
-
@vba_codename = @name
|
2190
|
-
end
|
2161
|
+
@vba_codename = vba_codename || @name
|
2191
2162
|
end
|
2192
2163
|
|
2193
2164
|
#
|
@@ -2195,33 +2166,29 @@ module Writexlsx
|
|
2195
2166
|
#
|
2196
2167
|
def ignore_errors(ignores)
|
2197
2168
|
# List of valid input parameters.
|
2198
|
-
valid_parameter_keys = [
|
2199
|
-
|
2200
|
-
|
2201
|
-
|
2202
|
-
|
2203
|
-
|
2204
|
-
|
2205
|
-
|
2206
|
-
|
2207
|
-
|
2169
|
+
valid_parameter_keys = %i[
|
2170
|
+
number_stored_as_text
|
2171
|
+
eval_error
|
2172
|
+
formula_differs
|
2173
|
+
formula_range
|
2174
|
+
formula_unlocked
|
2175
|
+
empty_cell_reference
|
2176
|
+
list_data_validation
|
2177
|
+
calculated_column
|
2178
|
+
two_digit_text_year
|
2208
2179
|
]
|
2209
2180
|
|
2210
|
-
unless (ignores.keys - valid_parameter_keys).empty?
|
2211
|
-
raise "Unknown parameter '#{ignores.key - valid_parameter_keys}' in ignore_errors()."
|
2212
|
-
end
|
2181
|
+
raise "Unknown parameter '#{ignores.key - valid_parameter_keys}' in ignore_errors()." unless (ignores.keys - valid_parameter_keys).empty?
|
2213
2182
|
|
2214
2183
|
@ignore_errors = ignores
|
2215
2184
|
end
|
2216
2185
|
|
2217
|
-
def write_ext(url)
|
2186
|
+
def write_ext(url, &block)
|
2218
2187
|
attributes = [
|
2219
2188
|
['xmlns:x14', "#{OFFICE_URL}spreadsheetml/2009/9/main"],
|
2220
2189
|
['uri', url]
|
2221
2190
|
]
|
2222
|
-
@writer.tag_elements('ext', attributes)
|
2223
|
-
yield
|
2224
|
-
end
|
2191
|
+
@writer.tag_elements('ext', attributes, &block)
|
2225
2192
|
end
|
2226
2193
|
|
2227
2194
|
def write_sparkline_groups
|
@@ -2279,11 +2246,7 @@ module Writexlsx
|
|
2279
2246
|
|
2280
2247
|
def cell_format_of_rich_string(rich_strings)
|
2281
2248
|
# If the last arg is a format we use it as the cell format.
|
2282
|
-
if rich_strings[-1].respond_to?(:xf_index)
|
2283
|
-
rich_strings.pop
|
2284
|
-
else
|
2285
|
-
nil
|
2286
|
-
end
|
2249
|
+
rich_strings.pop if rich_strings[-1].respond_to?(:xf_index)
|
2287
2250
|
end
|
2288
2251
|
|
2289
2252
|
#
|
@@ -2310,12 +2273,12 @@ module Writexlsx
|
|
2310
2273
|
last = 'format'
|
2311
2274
|
else
|
2312
2275
|
# Token is a string.
|
2313
|
-
if last
|
2314
|
-
# If previous token wasn't a format add one before the string.
|
2315
|
-
fragments << default << token
|
2316
|
-
else
|
2276
|
+
if last == 'format'
|
2317
2277
|
# If previous token was a format just add the string.
|
2318
2278
|
fragments << token
|
2279
|
+
else
|
2280
|
+
# If previous token wasn't a format add one before the string.
|
2281
|
+
fragments << default << token
|
2319
2282
|
end
|
2320
2283
|
|
2321
2284
|
length += token.size # Keep track of actual string length.
|
@@ -2332,7 +2295,7 @@ module Writexlsx
|
|
2332
2295
|
writer = Package::XMLWriterSimple.new
|
2333
2296
|
|
2334
2297
|
# If the first token is a string start the <r> element.
|
2335
|
-
writer.start_tag('r')
|
2298
|
+
writer.start_tag('r') unless fragments[0].respond_to?(:xf_index)
|
2336
2299
|
|
2337
2300
|
# Write the XML elements for the format string fragments.
|
2338
2301
|
fragments.each do |token|
|
@@ -2354,9 +2317,10 @@ module Writexlsx
|
|
2354
2317
|
|
2355
2318
|
# Pad out the rest of the area with formatted blank cells.
|
2356
2319
|
def write_formatted_blank_to_area(row_first, row_last, col_first, col_last, format)
|
2357
|
-
(row_first
|
2358
|
-
(col_first
|
2320
|
+
(row_first..row_last).each do |row|
|
2321
|
+
(col_first..col_last).each do |col|
|
2359
2322
|
next if row == row_first && col == col_first
|
2323
|
+
|
2360
2324
|
write_blank(row, col, format)
|
2361
2325
|
end
|
2362
2326
|
end
|
@@ -2367,13 +2331,13 @@ module Writexlsx
|
|
2367
2331
|
# whitespace groups. The only tricky part is to extract string tokens that
|
2368
2332
|
# contain whitespace and/or quoted double quotes (Excel's escaped quotes).
|
2369
2333
|
#
|
2370
|
-
def extract_filter_tokens(expression = nil)
|
2334
|
+
def extract_filter_tokens(expression = nil) # :nodoc:
|
2371
2335
|
return [] unless expression
|
2372
2336
|
|
2373
2337
|
tokens = []
|
2374
2338
|
str = expression
|
2375
2339
|
while str =~ /"(?:[^"]|"")*"|\S+/
|
2376
|
-
tokens <<
|
2340
|
+
tokens << ::Regexp.last_match(0)
|
2377
2341
|
str = $~.post_match
|
2378
2342
|
end
|
2379
2343
|
|
@@ -2398,11 +2362,11 @@ module Writexlsx
|
|
2398
2362
|
# Converts the tokens of a possibly conditional expression into 1 or 2
|
2399
2363
|
# sub expressions for further parsing.
|
2400
2364
|
#
|
2401
|
-
def parse_filter_expression(expression, tokens)
|
2365
|
+
def parse_filter_expression(expression, tokens) # :nodoc:
|
2402
2366
|
# The number of tokens will be either 3 (for 1 expression)
|
2403
2367
|
# or 7 (for 2 expressions).
|
2404
2368
|
#
|
2405
|
-
if
|
2369
|
+
if tokens.size == 7
|
2406
2370
|
conditional = tokens[3]
|
2407
2371
|
if conditional =~ /^(and|&&)$/
|
2408
2372
|
conditional = 0
|
@@ -2410,7 +2374,7 @@ module Writexlsx
|
|
2410
2374
|
conditional = 1
|
2411
2375
|
else
|
2412
2376
|
raise "Token '#{conditional}' is not a valid conditional " +
|
2413
|
-
|
2377
|
+
"in filter expression '#{expression}'"
|
2414
2378
|
end
|
2415
2379
|
expression_1 = parse_filter_tokens(expression, tokens[0..2])
|
2416
2380
|
expression_2 = parse_filter_tokens(expression, tokens[4..6])
|
@@ -2423,7 +2387,7 @@ module Writexlsx
|
|
2423
2387
|
#
|
2424
2388
|
# Parse the 3 tokens of a filter expression and return the operator and token.
|
2425
2389
|
#
|
2426
|
-
def parse_filter_tokens(expression, tokens)
|
2390
|
+
def parse_filter_tokens(expression, tokens) # :nodoc:
|
2427
2391
|
operators = {
|
2428
2392
|
'==' => 2,
|
2429
2393
|
'=' => 2,
|
@@ -2438,7 +2402,7 @@ module Writexlsx
|
|
2438
2402
|
'<' => 1,
|
2439
2403
|
'<=' => 3,
|
2440
2404
|
'>' => 4,
|
2441
|
-
'>=' => 6
|
2405
|
+
'>=' => 6
|
2442
2406
|
}
|
2443
2407
|
|
2444
2408
|
operator = operators[tokens[1]]
|
@@ -2447,40 +2411,38 @@ module Writexlsx
|
|
2447
2411
|
# Special handling of "Top" filter expressions.
|
2448
2412
|
if tokens[0] =~ /^top|bottom$/i
|
2449
2413
|
value = tokens[1]
|
2450
|
-
if
|
2414
|
+
if value.to_s =~ /\D/ or value.to_i < 1 or value.to_i > 500
|
2451
2415
|
raise "The value '#{value}' in expression '#{expression}' " +
|
2452
|
-
|
2416
|
+
"must be in the range 1 to 500"
|
2453
2417
|
end
|
2454
2418
|
token.downcase!
|
2455
|
-
if
|
2419
|
+
if token != 'items' and token != '%'
|
2456
2420
|
raise "The type '#{token}' in expression '#{expression}' " +
|
2457
|
-
|
2421
|
+
"must be either 'items' or '%'"
|
2458
2422
|
end
|
2459
2423
|
|
2460
|
-
if
|
2461
|
-
|
2462
|
-
|
2463
|
-
|
2464
|
-
|
2424
|
+
operator = if tokens[0] =~ /^top$/i
|
2425
|
+
30
|
2426
|
+
else
|
2427
|
+
32
|
2428
|
+
end
|
2465
2429
|
|
2466
|
-
if
|
2467
|
-
operator += 1
|
2468
|
-
end
|
2430
|
+
operator += 1 if tokens[2] == '%'
|
2469
2431
|
|
2470
2432
|
token = value
|
2471
2433
|
end
|
2472
2434
|
|
2473
|
-
if
|
2435
|
+
if !operator and tokens[0]
|
2474
2436
|
raise "Token '#{tokens[1]}' is not a valid operator " +
|
2475
|
-
|
2437
|
+
"in filter expression '#{expression}'"
|
2476
2438
|
end
|
2477
2439
|
|
2478
2440
|
# Special handling for Blanks/NonBlanks.
|
2479
|
-
if
|
2441
|
+
if token.to_s =~ /^blanks|nonblanks$/i
|
2480
2442
|
# Only allow Equals or NotEqual in this context.
|
2481
|
-
if
|
2443
|
+
if operator != 2 and operator != 5
|
2482
2444
|
raise "The operator '#{tokens[1]}' in expression '#{expression}' " +
|
2483
|
-
|
2445
|
+
"is not valid in relation to Blanks/NonBlanks'"
|
2484
2446
|
end
|
2485
2447
|
|
2486
2448
|
token.downcase!
|
@@ -2488,25 +2450,19 @@ module Writexlsx
|
|
2488
2450
|
# The operator should always be 2 (=) to flag a "simple" equality in
|
2489
2451
|
# the binary record. Therefore we convert <> to =.
|
2490
2452
|
if token == 'blanks'
|
2491
|
-
if operator == 5
|
2492
|
-
|
2493
|
-
|
2453
|
+
token = ' ' if operator == 5
|
2454
|
+
elsif operator == 5
|
2455
|
+
operator = 2
|
2456
|
+
token = 'blanks'
|
2494
2457
|
else
|
2495
|
-
|
2496
|
-
|
2497
|
-
token = 'blanks'
|
2498
|
-
else
|
2499
|
-
operator = 5
|
2500
|
-
token = ' '
|
2501
|
-
end
|
2458
|
+
operator = 5
|
2459
|
+
token = ' '
|
2502
2460
|
end
|
2503
2461
|
end
|
2504
2462
|
|
2505
2463
|
# if the string token contains an Excel match character then change the
|
2506
2464
|
# operator type to indicate a non "simple" equality.
|
2507
|
-
if
|
2508
|
-
operator = 22
|
2509
|
-
end
|
2465
|
+
operator = 22 if operator == 2 and token.to_s =~ /[*?]/
|
2510
2466
|
|
2511
2467
|
[operator, token]
|
2512
2468
|
end
|
@@ -2518,7 +2474,7 @@ module Writexlsx
|
|
2518
2474
|
# 2. Sorts the list.
|
2519
2475
|
# 3. Removes 0 from the list if present.
|
2520
2476
|
#
|
2521
|
-
def sort_pagebreaks(*args)
|
2477
|
+
def sort_pagebreaks(*args) # :nodoc:
|
2522
2478
|
return [] if args.empty?
|
2523
2479
|
|
2524
2480
|
breaks = args.uniq.sort
|
@@ -2538,17 +2494,17 @@ module Writexlsx
|
|
2538
2494
|
# Calculate the vertices that define the position of a graphical object within
|
2539
2495
|
# the worksheet in EMUs.
|
2540
2496
|
#
|
2541
|
-
def position_object_emus(col_start, row_start, x1, y1, width, height, anchor = nil)
|
2497
|
+
def position_object_emus(col_start, row_start, x1, y1, width, height, anchor = nil) # :nodoc:
|
2542
2498
|
col_start, row_start, x1, y1, col_end, row_end, x2, y2, x_abs, y_abs =
|
2543
2499
|
position_object_pixels(col_start, row_start, x1, y1, width, height, anchor)
|
2544
2500
|
|
2545
2501
|
# Convert the pixel values to EMUs. See above.
|
2546
|
-
x1 = (0.5 + 9_525 * x1).to_i
|
2547
|
-
y1 = (0.5 + 9_525 * y1).to_i
|
2548
|
-
x2 = (0.5 + 9_525 * x2).to_i
|
2549
|
-
y2 = (0.5 + 9_525 * y2).to_i
|
2550
|
-
x_abs = (0.5 + 9_525 * x_abs).to_i
|
2551
|
-
y_abs = (0.5 + 9_525 * y_abs).to_i
|
2502
|
+
x1 = (0.5 + (9_525 * x1)).to_i
|
2503
|
+
y1 = (0.5 + (9_525 * y1)).to_i
|
2504
|
+
x2 = (0.5 + (9_525 * x2)).to_i
|
2505
|
+
y2 = (0.5 + (9_525 * y2)).to_i
|
2506
|
+
x_abs = (0.5 + (9_525 * x_abs)).to_i
|
2507
|
+
y_abs = (0.5 + (9_525 * y_abs)).to_i
|
2552
2508
|
|
2553
2509
|
[col_start, row_start, x1, y1, col_end, row_end, x2, y2, x_abs, y_abs]
|
2554
2510
|
end
|
@@ -2559,19 +2515,19 @@ module Writexlsx
|
|
2559
2515
|
# we use the default value. A hidden column is treated as having a width of
|
2560
2516
|
# zero unless it has the special "object_position" of 4 (size with cells).
|
2561
2517
|
#
|
2562
|
-
def size_col(col, anchor = 0)
|
2518
|
+
def size_col(col, anchor = 0) # :nodoc:
|
2563
2519
|
# Look up the cell value to see if it has been changed.
|
2564
2520
|
if @col_sizes[col]
|
2565
2521
|
width, hidden = @col_sizes[col]
|
2566
2522
|
|
2567
2523
|
# Convert to pixels.
|
2568
|
-
if hidden == 1 && anchor != 4
|
2569
|
-
|
2570
|
-
|
2571
|
-
|
2572
|
-
|
2573
|
-
|
2574
|
-
|
2524
|
+
pixels = if hidden == 1 && anchor != 4
|
2525
|
+
0
|
2526
|
+
elsif width < 1
|
2527
|
+
((width * (MAX_DIGIT_WIDTH + PADDING)) + 0.5).to_i
|
2528
|
+
else
|
2529
|
+
((width * MAX_DIGIT_WIDTH) + 0.5).to_i + PADDING
|
2530
|
+
end
|
2575
2531
|
else
|
2576
2532
|
pixels = @default_col_pixels
|
2577
2533
|
end
|
@@ -2584,16 +2540,16 @@ module Writexlsx
|
|
2584
2540
|
# treated as having a height of zero unless it has the special
|
2585
2541
|
# "object_position" of 4 (size with cells).
|
2586
2542
|
#
|
2587
|
-
def size_row(row, anchor = 0)
|
2543
|
+
def size_row(row, anchor = 0) # :nodoc:
|
2588
2544
|
# Look up the cell value to see if it has been changed
|
2589
2545
|
if @row_sizes[row]
|
2590
2546
|
height, hidden = @row_sizes[row]
|
2591
2547
|
|
2592
|
-
if hidden == 1 && anchor != 4
|
2593
|
-
|
2594
|
-
|
2595
|
-
|
2596
|
-
|
2548
|
+
pixels = if hidden == 1 && anchor != 4
|
2549
|
+
0
|
2550
|
+
else
|
2551
|
+
(4 / 3.0 * height).to_i
|
2552
|
+
end
|
2597
2553
|
else
|
2598
2554
|
pixels = (4 / 3.0 * @default_row_height).to_i
|
2599
2555
|
end
|
@@ -2608,12 +2564,10 @@ module Writexlsx
|
|
2608
2564
|
padding = 5.0
|
2609
2565
|
|
2610
2566
|
if pixels <= 12
|
2611
|
-
|
2567
|
+
pixels / (max_digit_width + padding)
|
2612
2568
|
else
|
2613
|
-
|
2569
|
+
(pixels - padding) / max_digit_width
|
2614
2570
|
end
|
2615
|
-
|
2616
|
-
width
|
2617
2571
|
end
|
2618
2572
|
|
2619
2573
|
#
|
@@ -2621,19 +2575,19 @@ module Writexlsx
|
|
2621
2575
|
#
|
2622
2576
|
def pixels_to_height(pixels)
|
2623
2577
|
height = 0.75 * pixels
|
2624
|
-
height = height.to_i if (
|
2578
|
+
height = height.to_i if (height - height.to_i).abs < 0.1
|
2625
2579
|
height
|
2626
2580
|
end
|
2627
2581
|
|
2628
2582
|
#
|
2629
2583
|
# Set up image/drawings.
|
2630
2584
|
#
|
2631
|
-
def prepare_image(index, image_id, drawing_id, width, height, name, image_type, x_dpi = 96, y_dpi = 96, md5 = nil)
|
2585
|
+
def prepare_image(index, image_id, drawing_id, width, height, name, image_type, x_dpi = 96, y_dpi = 96, md5 = nil) # :nodoc:
|
2632
2586
|
x_dpi ||= 96
|
2633
2587
|
y_dpi ||= 96
|
2634
2588
|
drawing_type = 2
|
2635
2589
|
|
2636
|
-
row, col,
|
2590
|
+
row, col, _image, x_offset, y_offset,
|
2637
2591
|
x_scale, y_scale, url, tip, anchor, description, decorative = @images[index]
|
2638
2592
|
|
2639
2593
|
width *= x_scale
|
@@ -2650,28 +2604,24 @@ module Writexlsx
|
|
2650
2604
|
|
2651
2605
|
# Create a Drawing object to use with worksheet unless one already exists.
|
2652
2606
|
drawing = Drawing.new(drawing_type, dimensions, width, height, name, nil, anchor, 0, 0, tip, decorative)
|
2653
|
-
if
|
2607
|
+
if drawings?
|
2608
|
+
drawings = @drawings
|
2609
|
+
else
|
2654
2610
|
drawings = Drawings.new
|
2655
2611
|
drawings.embedded = 1
|
2656
2612
|
|
2657
2613
|
@drawings = drawings
|
2658
2614
|
|
2659
2615
|
@external_drawing_links << ['/drawing', "../drawings/drawing#{drawing_id}.xml"]
|
2660
|
-
else
|
2661
|
-
drawings = @drawings
|
2662
2616
|
end
|
2663
2617
|
drawings.add_drawing_object(drawing)
|
2664
2618
|
|
2665
|
-
if description
|
2666
|
-
drawing.description = description
|
2667
|
-
end
|
2619
|
+
drawing.description = description if description
|
2668
2620
|
|
2669
2621
|
if url
|
2670
2622
|
rel_type = '/hyperlink'
|
2671
2623
|
target_mode = 'External'
|
2672
|
-
if url =~ %r
|
2673
|
-
target = escape_url(url)
|
2674
|
-
end
|
2624
|
+
target = escape_url(url) if url =~ %r{^[fh]tt?ps?://} || url =~ /^mailto:/
|
2675
2625
|
if url =~ /^external:/
|
2676
2626
|
target = escape_url(url.sub(/^external:/, ''))
|
2677
2627
|
|
@@ -2679,11 +2629,11 @@ module Writexlsx
|
|
2679
2629
|
target = target.gsub(/#/, '%23')
|
2680
2630
|
|
2681
2631
|
# Prefix absolute paths (not relative) with file:///
|
2682
|
-
if target =~ /^\w:/ || target =~ /^\\\\/
|
2683
|
-
|
2684
|
-
|
2685
|
-
|
2686
|
-
|
2632
|
+
target = if target =~ /^\w:/ || target =~ /^\\\\/
|
2633
|
+
"file:///#{target}"
|
2634
|
+
else
|
2635
|
+
target.gsub(/\\/, '/')
|
2636
|
+
end
|
2687
2637
|
end
|
2688
2638
|
|
2689
2639
|
if url =~ /^internal:/
|
@@ -2697,15 +2647,11 @@ Ignoring URL #{target} where link or anchor > 255 characters since it exceeds Ex
|
|
2697
2647
|
EOS
|
2698
2648
|
end
|
2699
2649
|
|
2700
|
-
if target && !@drawing_rels[url]
|
2701
|
-
@drawing_links << [rel_type, target, target_mode]
|
2702
|
-
end
|
2650
|
+
@drawing_links << [rel_type, target, target_mode] if target && !@drawing_rels[url]
|
2703
2651
|
drawing.url_rel_index = drawing_rel_index(url)
|
2704
2652
|
end
|
2705
2653
|
|
2706
|
-
|
2707
|
-
@drawing_links << ['/image', "../media/image#{image_id}.#{image_type}"]
|
2708
|
-
end
|
2654
|
+
@drawing_links << ['/image', "../media/image#{image_id}.#{image_type}"] unless @drawing_rels[md5]
|
2709
2655
|
drawing.rel_index = drawing_rel_index(md5)
|
2710
2656
|
end
|
2711
2657
|
public :prepare_image
|
@@ -2713,11 +2659,9 @@ EOS
|
|
2713
2659
|
def prepare_header_image(image_id, width, height, name, image_type, position, x_dpi, y_dpi, md5)
|
2714
2660
|
# Strip the extension from the filename.
|
2715
2661
|
body = name.dup
|
2716
|
-
body[/\.[
|
2662
|
+
body[/\.[^.]+$/, 0] = ''
|
2717
2663
|
|
2718
|
-
|
2719
|
-
@vml_drawing_links << ['/image', "../media/image#{image_id}.#{image_type}" ]
|
2720
|
-
end
|
2664
|
+
@vml_drawing_links << ['/image', "../media/image#{image_id}.#{image_type}"] unless @vml_drawing_rels[md5]
|
2721
2665
|
|
2722
2666
|
ref_id = get_vml_drawing_rel_index(md5)
|
2723
2667
|
@header_images_array << [width, height, body, position, x_dpi, y_dpi, ref_id]
|
@@ -2753,9 +2697,7 @@ EOS
|
|
2753
2697
|
# Check for a cell reference in A1 notation and substitute row and column.
|
2754
2698
|
row_start, column_start, shape, x_offset, y_offset, x_scale, y_scale, anchor =
|
2755
2699
|
row_col_notation(args)
|
2756
|
-
if [row_start, column_start, shape].include?(nil)
|
2757
|
-
raise "Insufficient arguments in insert_shape()"
|
2758
|
-
end
|
2700
|
+
raise "Insufficient arguments in insert_shape()" if [row_start, column_start, shape].include?(nil)
|
2759
2701
|
|
2760
2702
|
shape.set_position(
|
2761
2703
|
row_start, column_start, x_offset, y_offset,
|
@@ -2778,14 +2720,14 @@ EOS
|
|
2778
2720
|
# Allow lookup of entry into shape array by shape ID.
|
2779
2721
|
@shape_hash[shape.id] = shape.element = @shapes.size
|
2780
2722
|
|
2781
|
-
if ptrue?(shape.stencil)
|
2782
|
-
|
2783
|
-
|
2784
|
-
|
2785
|
-
|
2786
|
-
|
2787
|
-
|
2788
|
-
|
2723
|
+
insert = if ptrue?(shape.stencil)
|
2724
|
+
# Insert a copy of the shape, not a reference so that the shape is
|
2725
|
+
# used as a stencil. Previously stamped copies don't get modified
|
2726
|
+
# if the stencil is modified.
|
2727
|
+
shape.dup
|
2728
|
+
else
|
2729
|
+
shape
|
2730
|
+
end
|
2789
2731
|
|
2790
2732
|
# For connectors change x/y coords based on location of connected shapes.
|
2791
2733
|
insert.auto_locate_connectors(@shapes, @shape_hash)
|
@@ -2839,29 +2781,25 @@ EOS
|
|
2839
2781
|
button.font = { :_caption => caption }
|
2840
2782
|
|
2841
2783
|
# Set the macro name.
|
2842
|
-
if params[:macro]
|
2843
|
-
|
2844
|
-
|
2845
|
-
|
2846
|
-
|
2784
|
+
button.macro = if params[:macro]
|
2785
|
+
"[0]!#{params[:macro]}"
|
2786
|
+
else
|
2787
|
+
"[0]!Button#{button_number}_Click"
|
2788
|
+
end
|
2847
2789
|
|
2848
2790
|
# Ensure that a width and height have been set.
|
2849
2791
|
default_width = @default_col_pixels
|
2850
2792
|
default_height = @default_row_pixels
|
2851
|
-
params[:width] = default_width
|
2852
|
-
params[:height] = default_height
|
2793
|
+
params[:width] = default_width unless params[:width]
|
2794
|
+
params[:height] = default_height unless params[:height]
|
2853
2795
|
|
2854
2796
|
# Set the x/y offsets.
|
2855
|
-
params[:x_offset] = 0
|
2856
|
-
params[:y_offset] = 0
|
2797
|
+
params[:x_offset] = 0 unless params[:x_offset]
|
2798
|
+
params[:y_offset] = 0 unless params[:y_offset]
|
2857
2799
|
|
2858
2800
|
# Scale the size of the button box if required.
|
2859
|
-
if params[:x_scale]
|
2860
|
-
|
2861
|
-
end
|
2862
|
-
if params[:y_scale]
|
2863
|
-
params[:height] = params[:height] * params[:y_scale]
|
2864
|
-
end
|
2801
|
+
params[:width] = params[:width] * params[:x_scale] if params[:x_scale]
|
2802
|
+
params[:height] = params[:height] * params[:y_scale] if params[:y_scale]
|
2865
2803
|
|
2866
2804
|
# Round the dimensions to the nearest pixel.
|
2867
2805
|
params[:width] = (0.5 + params[:width]).to_i
|
@@ -2891,7 +2829,7 @@ EOS
|
|
2891
2829
|
#
|
2892
2830
|
# Based on the algorithm provided by Daniel Rentz of OpenOffice.
|
2893
2831
|
#
|
2894
|
-
def encode_password(password)
|
2832
|
+
def encode_password(password) # :nodoc:
|
2895
2833
|
i = 0
|
2896
2834
|
chars = password.split(//)
|
2897
2835
|
count = chars.size
|
@@ -2900,12 +2838,12 @@ EOS
|
|
2900
2838
|
i += 1
|
2901
2839
|
char = char.ord << i
|
2902
2840
|
low_15 = char & 0x7fff
|
2903
|
-
high_15 = char & 0x7fff << 15
|
2841
|
+
high_15 = char & (0x7fff << 15)
|
2904
2842
|
high_15 = high_15 >> 15
|
2905
2843
|
char = low_15 | high_15
|
2906
2844
|
end
|
2907
2845
|
|
2908
|
-
encoded_password
|
2846
|
+
encoded_password = 0x0000
|
2909
2847
|
chars.each { |c| encoded_password ^= c }
|
2910
2848
|
encoded_password ^= count
|
2911
2849
|
encoded_password ^= 0xCE4B
|
@@ -2916,7 +2854,7 @@ EOS
|
|
2916
2854
|
#
|
2917
2855
|
# Write the <worksheet> element. This is the root element of Worksheet.
|
2918
2856
|
#
|
2919
|
-
def write_worksheet_attributes
|
2857
|
+
def write_worksheet_attributes # :nodoc:
|
2920
2858
|
schema = 'http://schemas.openxmlformats.org/'
|
2921
2859
|
attributes = [
|
2922
2860
|
['xmlns', "#{schema}spreadsheetml/2006/main"],
|
@@ -2934,7 +2872,7 @@ EOS
|
|
2934
2872
|
#
|
2935
2873
|
# Write the <sheetPr> element for Sheet level properties.
|
2936
2874
|
#
|
2937
|
-
def write_sheet_pr
|
2875
|
+
def write_sheet_pr # :nodoc:
|
2938
2876
|
return unless tab_outline_fit? || vba_codename? || filter_on?
|
2939
2877
|
|
2940
2878
|
attributes = []
|
@@ -2959,14 +2897,14 @@ EOS
|
|
2959
2897
|
#
|
2960
2898
|
# Write the <pageSetUpPr> element.
|
2961
2899
|
#
|
2962
|
-
def write_page_set_up_pr
|
2963
|
-
@writer.empty_tag('pageSetUpPr', [
|
2900
|
+
def write_page_set_up_pr # :nodoc:
|
2901
|
+
@writer.empty_tag('pageSetUpPr', [['fitToPage', 1]]) if fit_page?
|
2964
2902
|
end
|
2965
2903
|
|
2966
2904
|
# Write the <dimension> element. This specifies the range of cells in the
|
2967
2905
|
# worksheet. As a special case, empty spreadsheets use 'A1' as a range.
|
2968
2906
|
#
|
2969
|
-
def write_dimension
|
2907
|
+
def write_dimension # :nodoc:
|
2970
2908
|
if !@dim_rowmin && !@dim_colmin
|
2971
2909
|
# If the min dims are undefined then no dimensions have been set
|
2972
2910
|
# and we use the default 'A1'.
|
@@ -2992,16 +2930,17 @@ EOS
|
|
2992
2930
|
cell_2 = xl_rowcol_to_cell(@dim_rowmax, @dim_colmax)
|
2993
2931
|
ref = cell_1 + ':' + cell_2
|
2994
2932
|
end
|
2995
|
-
@writer.empty_tag('dimension', [
|
2933
|
+
@writer.empty_tag('dimension', [['ref', ref]])
|
2996
2934
|
end
|
2935
|
+
|
2997
2936
|
#
|
2998
2937
|
# Write the <sheetViews> element.
|
2999
2938
|
#
|
3000
|
-
def write_sheet_views
|
2939
|
+
def write_sheet_views # :nodoc:
|
3001
2940
|
@writer.tag_elements('sheetViews', []) { write_sheet_view }
|
3002
2941
|
end
|
3003
2942
|
|
3004
|
-
def write_sheet_view
|
2943
|
+
def write_sheet_view # :nodoc:
|
3005
2944
|
attributes = []
|
3006
2945
|
# Hide screen gridlines if required.
|
3007
2946
|
attributes << ['showGridLines', 0] unless @screen_gridlines
|
@@ -3023,7 +2962,7 @@ EOS
|
|
3023
2962
|
|
3024
2963
|
# Set the page view/layout mode if required.
|
3025
2964
|
# TODO. Add pageBreakPreview mode when requested.
|
3026
|
-
attributes << [
|
2965
|
+
attributes << %w[view pageLayout] if page_view?
|
3027
2966
|
|
3028
2967
|
# Set the zoom level.
|
3029
2968
|
if @zoom != 100
|
@@ -3046,14 +2985,14 @@ EOS
|
|
3046
2985
|
#
|
3047
2986
|
# Write the <selection> elements.
|
3048
2987
|
#
|
3049
|
-
def write_selections
|
2988
|
+
def write_selections # :nodoc:
|
3050
2989
|
@selections.each { |selection| write_selection(*selection) }
|
3051
2990
|
end
|
3052
2991
|
|
3053
2992
|
#
|
3054
2993
|
# Write the <selection> element.
|
3055
2994
|
#
|
3056
|
-
def write_selection(pane, active_cell, sqref)
|
2995
|
+
def write_selection(pane, active_cell, sqref) # :nodoc:
|
3057
2996
|
attributes = []
|
3058
2997
|
attributes << ['pane', pane] if pane
|
3059
2998
|
attributes << ['activeCell', active_cell] if active_cell
|
@@ -3065,44 +3004,36 @@ EOS
|
|
3065
3004
|
#
|
3066
3005
|
# Write the <sheetFormatPr> element.
|
3067
3006
|
#
|
3068
|
-
def write_sheet_format_pr
|
3069
|
-
base_col_width = 10
|
3070
|
-
|
3007
|
+
def write_sheet_format_pr # :nodoc:
|
3071
3008
|
attributes = [
|
3072
3009
|
['defaultRowHeight', @default_row_height]
|
3073
3010
|
]
|
3074
|
-
if @default_row_height != @original_row_height
|
3075
|
-
attributes << ['customHeight', 1]
|
3076
|
-
end
|
3011
|
+
attributes << ['customHeight', 1] if @default_row_height != @original_row_height
|
3077
3012
|
|
3078
|
-
if ptrue?(@default_row_zeroed)
|
3079
|
-
attributes << ['zeroHeight', 1]
|
3080
|
-
end
|
3013
|
+
attributes << ['zeroHeight', 1] if ptrue?(@default_row_zeroed)
|
3081
3014
|
|
3082
3015
|
attributes << ['outlineLevelRow', @outline_row_level] if @outline_row_level > 0
|
3083
3016
|
attributes << ['outlineLevelCol', @outline_col_level] if @outline_col_level > 0
|
3084
|
-
if @excel_version == 2010
|
3085
|
-
attributes << ['x14ac:dyDescent', '0.25']
|
3086
|
-
end
|
3017
|
+
attributes << ['x14ac:dyDescent', '0.25'] if @excel_version == 2010
|
3087
3018
|
@writer.empty_tag('sheetFormatPr', attributes)
|
3088
3019
|
end
|
3089
3020
|
|
3090
3021
|
#
|
3091
3022
|
# Write the <cols> element and <col> sub elements.
|
3092
3023
|
#
|
3093
|
-
def write_cols
|
3024
|
+
def write_cols # :nodoc:
|
3094
3025
|
# Exit unless some column have been formatted.
|
3095
3026
|
return if @colinfo.empty?
|
3096
3027
|
|
3097
3028
|
@writer.tag_elements('cols') do
|
3098
|
-
@colinfo.keys.sort.each {|col| write_col_info(@colinfo[col]) }
|
3029
|
+
@colinfo.keys.sort.each { |col| write_col_info(@colinfo[col]) }
|
3099
3030
|
end
|
3100
3031
|
end
|
3101
3032
|
|
3102
3033
|
#
|
3103
3034
|
# Write the <col> element.
|
3104
3035
|
#
|
3105
|
-
def write_col_info(args)
|
3036
|
+
def write_col_info(args) # :nodoc:
|
3106
3037
|
@writer.empty_tag('col', col_info_attributes(args))
|
3107
3038
|
end
|
3108
3039
|
|
@@ -3120,16 +3051,14 @@ EOS
|
|
3120
3051
|
custom_width = false if width.nil? && hidden == 0
|
3121
3052
|
custom_width = false if width == 8.43
|
3122
3053
|
|
3123
|
-
width
|
3054
|
+
width ||= hidden == 0 ? @default_col_width : 0
|
3124
3055
|
|
3125
3056
|
# Convert column width from user units to character width.
|
3126
|
-
if width && width < 1
|
3127
|
-
|
3128
|
-
|
3129
|
-
|
3130
|
-
|
3131
|
-
(((width * MAX_DIGIT_WIDTH + 0.5).to_i + PADDING).to_i/ MAX_DIGIT_WIDTH.to_f * 256).to_i / 256.0
|
3132
|
-
end
|
3057
|
+
width = if width && width < 1
|
3058
|
+
(((width * (MAX_DIGIT_WIDTH + PADDING)) + 0.5).to_i / MAX_DIGIT_WIDTH.to_f * 256).to_i / 256.0
|
3059
|
+
else
|
3060
|
+
((((width * MAX_DIGIT_WIDTH) + 0.5).to_i + PADDING).to_i / MAX_DIGIT_WIDTH.to_f * 256).to_i / 256.0
|
3061
|
+
end
|
3133
3062
|
width = width.to_i if width - width.to_i == 0
|
3134
3063
|
|
3135
3064
|
attributes = [
|
@@ -3149,22 +3078,22 @@ EOS
|
|
3149
3078
|
#
|
3150
3079
|
# Write the <sheetData> element.
|
3151
3080
|
#
|
3152
|
-
def write_sheet_data
|
3153
|
-
if
|
3081
|
+
def write_sheet_data # :nodoc:
|
3082
|
+
if @dim_rowmin
|
3083
|
+
@writer.tag_elements('sheetData') { write_rows }
|
3084
|
+
else
|
3154
3085
|
# If the dimensions aren't defined then there is no data to write.
|
3155
3086
|
@writer.empty_tag('sheetData')
|
3156
|
-
else
|
3157
|
-
@writer.tag_elements('sheetData') { write_rows }
|
3158
3087
|
end
|
3159
3088
|
end
|
3160
3089
|
|
3161
3090
|
#
|
3162
3091
|
# Write out the worksheet data as a series of rows and cells.
|
3163
3092
|
#
|
3164
|
-
def write_rows
|
3093
|
+
def write_rows # :nodoc:
|
3165
3094
|
calculate_spans
|
3166
3095
|
|
3167
|
-
(@dim_rowmin
|
3096
|
+
(@dim_rowmin..@dim_rowmax).each do |row_num|
|
3168
3097
|
# Skip row if it doesn't contain row formatting or cell data.
|
3169
3098
|
next if not_contain_formatting_or_data?(row_num)
|
3170
3099
|
|
@@ -3177,8 +3106,6 @@ EOS
|
|
3177
3106
|
write_row_element(row_num, span, *args) do
|
3178
3107
|
write_cell_column_dimension(row_num)
|
3179
3108
|
end
|
3180
|
-
elsif @comments[row_num]
|
3181
|
-
write_empty_row(row_num, span, *(@set_rows[row_num]))
|
3182
3109
|
else
|
3183
3110
|
# Row attributes only.
|
3184
3111
|
write_empty_row(row_num, span, *(@set_rows[row_num]))
|
@@ -3191,7 +3118,7 @@ EOS
|
|
3191
3118
|
end
|
3192
3119
|
|
3193
3120
|
def write_cell_column_dimension(row_num) # :nodoc:
|
3194
|
-
(@dim_colmin
|
3121
|
+
(@dim_colmin..@dim_colmax).each do |col_num|
|
3195
3122
|
@cell_data_table[row_num][col_num].write_cell if @cell_data_table[row_num][col_num]
|
3196
3123
|
end
|
3197
3124
|
end
|
@@ -3199,21 +3126,19 @@ EOS
|
|
3199
3126
|
#
|
3200
3127
|
# Write the <row> element.
|
3201
3128
|
#
|
3202
|
-
def write_row_element(*args) # :nodoc:
|
3203
|
-
@writer.tag_elements('row', row_attributes(args))
|
3204
|
-
yield
|
3205
|
-
end
|
3129
|
+
def write_row_element(*args, &block) # :nodoc:
|
3130
|
+
@writer.tag_elements('row', row_attributes(args), &block)
|
3206
3131
|
end
|
3207
3132
|
|
3208
3133
|
#
|
3209
3134
|
# Write and empty <row> element, i.e., attributes only, no cell data.
|
3210
3135
|
#
|
3211
|
-
def write_empty_row(*args)
|
3136
|
+
def write_empty_row(*args) # :nodoc:
|
3212
3137
|
@writer.empty_tag('row', row_attributes(args))
|
3213
3138
|
end
|
3214
3139
|
|
3215
3140
|
def row_attributes(args)
|
3216
|
-
r, spans, height, format, hidden, level, collapsed,
|
3141
|
+
r, spans, height, format, hidden, level, collapsed, _empty_row = args
|
3217
3142
|
height ||= @default_row_height
|
3218
3143
|
hidden ||= 0
|
3219
3144
|
level ||= 0
|
@@ -3230,36 +3155,34 @@ EOS
|
|
3230
3155
|
attributes << ['outlineLevel', level] if ptrue?(level)
|
3231
3156
|
attributes << ['collapsed', 1] if ptrue?(collapsed)
|
3232
3157
|
|
3233
|
-
if @excel_version == 2010
|
3234
|
-
attributes << ['x14ac:dyDescent', '0.25']
|
3235
|
-
end
|
3158
|
+
attributes << ['x14ac:dyDescent', '0.25'] if @excel_version == 2010
|
3236
3159
|
attributes
|
3237
3160
|
end
|
3238
3161
|
|
3239
3162
|
#
|
3240
3163
|
# Write the frozen or split <pane> elements.
|
3241
3164
|
#
|
3242
|
-
def write_panes
|
3165
|
+
def write_panes # :nodoc:
|
3243
3166
|
return if @panes.empty?
|
3244
3167
|
|
3245
3168
|
if @panes[4] == 2
|
3246
3169
|
write_split_panes
|
3247
3170
|
else
|
3248
|
-
write_freeze_panes(
|
3171
|
+
write_freeze_panes(*@panes)
|
3249
3172
|
end
|
3250
3173
|
end
|
3251
3174
|
|
3252
3175
|
#
|
3253
3176
|
# Write the <pane> element for freeze panes.
|
3254
3177
|
#
|
3255
|
-
def write_freeze_panes(row, col, top_row, left_col, type)
|
3178
|
+
def write_freeze_panes(row, col, top_row, left_col, type) # :nodoc:
|
3256
3179
|
y_split = row
|
3257
3180
|
x_split = col
|
3258
3181
|
top_left_cell = xl_rowcol_to_cell(top_row, left_col)
|
3259
3182
|
|
3260
3183
|
# Move user cell selection to the panes.
|
3261
3184
|
unless @selections.empty?
|
3262
|
-
|
3185
|
+
_dummy, active_cell, sqref = @selections[0]
|
3263
3186
|
@selections = []
|
3264
3187
|
end
|
3265
3188
|
|
@@ -3268,13 +3191,13 @@ EOS
|
|
3268
3191
|
active_pane = set_active_pane_and_cell_selections(row, col, row, col, active_cell, sqref)
|
3269
3192
|
|
3270
3193
|
# Set the pane type.
|
3271
|
-
if type == 0
|
3272
|
-
|
3273
|
-
|
3274
|
-
|
3275
|
-
|
3276
|
-
|
3277
|
-
|
3194
|
+
state = if type == 0
|
3195
|
+
'frozen'
|
3196
|
+
elsif type == 1
|
3197
|
+
'frozenSplit'
|
3198
|
+
else
|
3199
|
+
'split'
|
3200
|
+
end
|
3278
3201
|
|
3279
3202
|
attributes = []
|
3280
3203
|
attributes << ['xSplit', x_split] if x_split > 0
|
@@ -3291,35 +3214,35 @@ EOS
|
|
3291
3214
|
#
|
3292
3215
|
# See also, implementers note for split_panes().
|
3293
3216
|
#
|
3294
|
-
def write_split_panes
|
3217
|
+
def write_split_panes # :nodoc:
|
3295
3218
|
row, col, top_row, left_col = @panes
|
3296
3219
|
has_selection = false
|
3297
3220
|
y_split = row
|
3298
3221
|
x_split = col
|
3299
3222
|
|
3300
3223
|
# Move user cell selection to the panes.
|
3301
|
-
|
3302
|
-
|
3224
|
+
unless @selections.empty?
|
3225
|
+
_dummy, active_cell, sqref = @selections[0]
|
3303
3226
|
@selections = []
|
3304
3227
|
has_selection = true
|
3305
3228
|
end
|
3306
3229
|
|
3307
3230
|
# Convert the row and col to 1/20 twip units with padding.
|
3308
|
-
y_split = (20 * y_split + 300).to_i if y_split > 0
|
3231
|
+
y_split = ((20 * y_split) + 300).to_i if y_split > 0
|
3309
3232
|
x_split = calculate_x_split_width(x_split) if x_split > 0
|
3310
3233
|
|
3311
3234
|
# For non-explicit topLeft definitions, estimate the cell offset based
|
3312
3235
|
# on the pixels dimensions. This is only a workaround and doesn't take
|
3313
3236
|
# adjusted cell dimensions into account.
|
3314
3237
|
if top_row == row && left_col == col
|
3315
|
-
top_row = (0.5 + (y_split - 300) / 20 / 15).to_i
|
3316
|
-
left_col = (0.5 + (x_split - 390) / 20 / 3 * 4 / 64).to_i
|
3238
|
+
top_row = (0.5 + ((y_split - 300) / 20 / 15)).to_i
|
3239
|
+
left_col = (0.5 + ((x_split - 390) / 20 / 3 * 4 / 64)).to_i
|
3317
3240
|
end
|
3318
3241
|
|
3319
3242
|
top_left_cell = xl_rowcol_to_cell(top_row, left_col)
|
3320
3243
|
|
3321
3244
|
# If there is no selection set the active cell to the top left cell.
|
3322
|
-
|
3245
|
+
unless has_selection
|
3323
3246
|
active_cell = top_left_cell
|
3324
3247
|
sqref = top_left_cell
|
3325
3248
|
end
|
@@ -3339,13 +3262,13 @@ EOS
|
|
3339
3262
|
#
|
3340
3263
|
# Convert column width from user units to pane split width.
|
3341
3264
|
#
|
3342
|
-
def calculate_x_split_width(width)
|
3265
|
+
def calculate_x_split_width(width) # :nodoc:
|
3343
3266
|
# Convert to pixels.
|
3344
|
-
if width < 1
|
3345
|
-
|
3346
|
-
|
3347
|
-
|
3348
|
-
|
3267
|
+
pixels = if width < 1
|
3268
|
+
int((width * 12) + 0.5)
|
3269
|
+
else
|
3270
|
+
((width * MAX_DIGIT_WIDTH) + 0.5).to_i + PADDING
|
3271
|
+
end
|
3349
3272
|
|
3350
3273
|
# Convert to points.
|
3351
3274
|
points = pixels * 3 / 4
|
@@ -3360,17 +3283,17 @@ EOS
|
|
3360
3283
|
#
|
3361
3284
|
# Write the <sheetCalcPr> element for the worksheet calculation properties.
|
3362
3285
|
#
|
3363
|
-
def write_sheet_calc_pr
|
3364
|
-
@writer.empty_tag('sheetCalcPr', [
|
3286
|
+
def write_sheet_calc_pr # :nodoc:
|
3287
|
+
@writer.empty_tag('sheetCalcPr', [['fullCalcOnLoad', 1]])
|
3365
3288
|
end
|
3366
3289
|
|
3367
3290
|
#
|
3368
3291
|
# Write the <phoneticPr> element.
|
3369
3292
|
#
|
3370
|
-
def write_phonetic_pr
|
3293
|
+
def write_phonetic_pr # :nodoc:
|
3371
3294
|
attributes = [
|
3372
3295
|
['fontId', 0],
|
3373
|
-
[
|
3296
|
+
%w[type noConversion]
|
3374
3297
|
]
|
3375
3298
|
|
3376
3299
|
@writer.empty_tag('phoneticPr', attributes)
|
@@ -3379,82 +3302,80 @@ EOS
|
|
3379
3302
|
#
|
3380
3303
|
# Write the <pageMargins> element.
|
3381
3304
|
#
|
3382
|
-
def write_page_margins
|
3305
|
+
def write_page_margins # :nodoc:
|
3383
3306
|
@page_setup.write_page_margins(@writer)
|
3384
3307
|
end
|
3385
3308
|
|
3386
3309
|
#
|
3387
3310
|
# Write the <pageSetup> element.
|
3388
3311
|
#
|
3389
|
-
def write_page_setup
|
3312
|
+
def write_page_setup # :nodoc:
|
3390
3313
|
@page_setup.write_page_setup(@writer)
|
3391
3314
|
end
|
3392
3315
|
|
3393
3316
|
#
|
3394
3317
|
# Write the <mergeCells> element.
|
3395
3318
|
#
|
3396
|
-
def write_merge_cells
|
3319
|
+
def write_merge_cells # :nodoc:
|
3397
3320
|
write_some_elements('mergeCells', @merge) do
|
3398
3321
|
@merge.each { |merged_range| write_merge_cell(merged_range) }
|
3399
3322
|
end
|
3400
3323
|
end
|
3401
3324
|
|
3402
|
-
def write_some_elements(tag, container)
|
3325
|
+
def write_some_elements(tag, container, &block)
|
3403
3326
|
return if container.empty?
|
3404
3327
|
|
3405
|
-
@writer.tag_elements(tag, [
|
3406
|
-
yield
|
3407
|
-
end
|
3328
|
+
@writer.tag_elements(tag, [['count', container.size]], &block)
|
3408
3329
|
end
|
3409
3330
|
|
3410
3331
|
#
|
3411
3332
|
# Write the <mergeCell> element.
|
3412
3333
|
#
|
3413
|
-
def write_merge_cell(merged_range)
|
3334
|
+
def write_merge_cell(merged_range) # :nodoc:
|
3414
3335
|
row_min, col_min, row_max, col_max = merged_range
|
3415
3336
|
|
3416
3337
|
# Convert the merge dimensions to a cell range.
|
3417
3338
|
cell_1 = xl_rowcol_to_cell(row_min, col_min)
|
3418
3339
|
cell_2 = xl_rowcol_to_cell(row_max, col_max)
|
3419
3340
|
|
3420
|
-
@writer.empty_tag('mergeCell', [
|
3341
|
+
@writer.empty_tag('mergeCell', [['ref', "#{cell_1}:#{cell_2}"]])
|
3421
3342
|
end
|
3422
3343
|
|
3423
3344
|
#
|
3424
3345
|
# Write the <printOptions> element.
|
3425
3346
|
#
|
3426
|
-
def write_print_options
|
3347
|
+
def write_print_options # :nodoc:
|
3427
3348
|
@page_setup.write_print_options(@writer)
|
3428
3349
|
end
|
3429
3350
|
|
3430
3351
|
#
|
3431
3352
|
# Write the <headerFooter> element.
|
3432
3353
|
#
|
3433
|
-
def write_header_footer
|
3354
|
+
def write_header_footer # :nodoc:
|
3434
3355
|
@page_setup.write_header_footer(@writer, excel2003_style?)
|
3435
3356
|
end
|
3436
3357
|
|
3437
3358
|
#
|
3438
3359
|
# Write the <rowBreaks> element.
|
3439
3360
|
#
|
3440
|
-
def write_row_breaks
|
3361
|
+
def write_row_breaks # :nodoc:
|
3441
3362
|
write_breaks('rowBreaks')
|
3442
3363
|
end
|
3443
3364
|
|
3444
3365
|
#
|
3445
3366
|
# Write the <colBreaks> element.
|
3446
3367
|
#
|
3447
|
-
def write_col_breaks
|
3368
|
+
def write_col_breaks # :nodoc:
|
3448
3369
|
write_breaks('colBreaks')
|
3449
3370
|
end
|
3450
3371
|
|
3451
3372
|
def write_breaks(tag) # :nodoc:
|
3452
3373
|
case tag
|
3453
3374
|
when 'rowBreaks'
|
3454
|
-
page_breaks = sort_pagebreaks(
|
3375
|
+
page_breaks = sort_pagebreaks(*@page_setup.hbreaks)
|
3455
3376
|
max = 16383
|
3456
3377
|
when 'colBreaks'
|
3457
|
-
page_breaks = sort_pagebreaks(
|
3378
|
+
page_breaks = sort_pagebreaks(*@page_setup.vbreaks)
|
3458
3379
|
max = 1048575
|
3459
3380
|
else
|
3460
3381
|
raise "Invalid parameter '#{tag}' in write_breaks."
|
@@ -3472,10 +3393,11 @@ EOS
|
|
3472
3393
|
page_breaks.each { |num| write_brk(num, max) }
|
3473
3394
|
end
|
3474
3395
|
end
|
3396
|
+
|
3475
3397
|
#
|
3476
3398
|
# Write the <brk> element.
|
3477
3399
|
#
|
3478
|
-
def write_brk(id, max)
|
3400
|
+
def write_brk(id, max) # :nodoc:
|
3479
3401
|
attributes = [
|
3480
3402
|
['id', id],
|
3481
3403
|
['max', max],
|
@@ -3488,7 +3410,7 @@ EOS
|
|
3488
3410
|
#
|
3489
3411
|
# Write the <autoFilter> element.
|
3490
3412
|
#
|
3491
|
-
def write_auto_filter
|
3413
|
+
def write_auto_filter # :nodoc:
|
3492
3414
|
return unless autofilter_ref?
|
3493
3415
|
|
3494
3416
|
attributes = [
|
@@ -3510,10 +3432,10 @@ EOS
|
|
3510
3432
|
# Function to iterate through the columns that form part of an autofilter
|
3511
3433
|
# range and write the appropriate filters.
|
3512
3434
|
#
|
3513
|
-
def write_autofilters
|
3435
|
+
def write_autofilters # :nodoc:
|
3514
3436
|
col1, col2 = @filter_range
|
3515
3437
|
|
3516
|
-
(col1
|
3438
|
+
(col1..col2).each do |col|
|
3517
3439
|
# Skip if column doesn't have an active filter.
|
3518
3440
|
next unless @filter_cols[col]
|
3519
3441
|
|
@@ -3529,8 +3451,8 @@ EOS
|
|
3529
3451
|
#
|
3530
3452
|
# Write the <filterColumn> element.
|
3531
3453
|
#
|
3532
|
-
def write_filter_column(col_id, type, *filters)
|
3533
|
-
@writer.tag_elements('filterColumn', [
|
3454
|
+
def write_filter_column(col_id, type, *filters) # :nodoc:
|
3455
|
+
@writer.tag_elements('filterColumn', [['colId', col_id]]) do
|
3534
3456
|
if type == 1
|
3535
3457
|
# Type == 1 is the new XLSX style filter.
|
3536
3458
|
write_filters(*filters)
|
@@ -3544,13 +3466,11 @@ EOS
|
|
3544
3466
|
#
|
3545
3467
|
# Write the <filters> element.
|
3546
3468
|
#
|
3547
|
-
def write_filters(*filters)
|
3548
|
-
non_blanks = filters.reject { |filter| filter =~ /^blanks$/i }
|
3469
|
+
def write_filters(*filters) # :nodoc:
|
3470
|
+
non_blanks = filters.reject { |filter| filter.to_s =~ /^blanks$/i }
|
3549
3471
|
attributes = []
|
3550
3472
|
|
3551
|
-
if filters != non_blanks
|
3552
|
-
attributes = [ ['blank', 1] ]
|
3553
|
-
end
|
3473
|
+
attributes = [['blank', 1]] if filters != non_blanks
|
3554
3474
|
|
3555
3475
|
if filters.size == 1 && non_blanks.empty?
|
3556
3476
|
# Special case for blank cells only.
|
@@ -3566,14 +3486,14 @@ EOS
|
|
3566
3486
|
#
|
3567
3487
|
# Write the <filter> element.
|
3568
3488
|
#
|
3569
|
-
def write_filter(val)
|
3570
|
-
@writer.empty_tag('filter', [
|
3489
|
+
def write_filter(val) # :nodoc:
|
3490
|
+
@writer.empty_tag('filter', [['val', val]])
|
3571
3491
|
end
|
3572
3492
|
|
3573
3493
|
#
|
3574
3494
|
# Write the <customFilters> element.
|
3575
3495
|
#
|
3576
|
-
def write_custom_filters(*tokens)
|
3496
|
+
def write_custom_filters(*tokens) # :nodoc:
|
3577
3497
|
if tokens.size == 2
|
3578
3498
|
# One filter expression only.
|
3579
3499
|
@writer.tag_elements('customFilters') { write_custom_filter(*tokens) }
|
@@ -3581,11 +3501,11 @@ EOS
|
|
3581
3501
|
# Two filter expressions.
|
3582
3502
|
|
3583
3503
|
# Check if the "join" operand is "and" or "or".
|
3584
|
-
if tokens[2] == 0
|
3585
|
-
|
3586
|
-
|
3587
|
-
|
3588
|
-
|
3504
|
+
attributes = if tokens[2] == 0
|
3505
|
+
[['and', 1]]
|
3506
|
+
else
|
3507
|
+
[['and', 0]]
|
3508
|
+
end
|
3589
3509
|
|
3590
3510
|
# Write the two custom filters.
|
3591
3511
|
@writer.tag_elements('customFilters', attributes) do
|
@@ -3598,7 +3518,7 @@ EOS
|
|
3598
3518
|
#
|
3599
3519
|
# Write the <customFilter> element.
|
3600
3520
|
#
|
3601
|
-
def write_custom_filter(operator, val)
|
3521
|
+
def write_custom_filter(operator, val) # :nodoc:
|
3602
3522
|
operators = {
|
3603
3523
|
1 => 'lessThan',
|
3604
3524
|
2 => 'equal',
|
@@ -3628,8 +3548,9 @@ EOS
|
|
3628
3548
|
# Process any sored hyperlinks in row/col order and write the <hyperlinks>
|
3629
3549
|
# element. The attributes are different for internal and external links.
|
3630
3550
|
#
|
3631
|
-
def write_hyperlinks
|
3551
|
+
def write_hyperlinks # :nodoc:
|
3632
3552
|
return unless @hyperlinks
|
3553
|
+
|
3633
3554
|
hlink_attributes = []
|
3634
3555
|
@hyperlinks.keys.sort.each do |row_num|
|
3635
3556
|
# Sort the hyperlinks into column order.
|
@@ -3642,11 +3563,9 @@ EOS
|
|
3642
3563
|
# If the cell isn't a string then we have to add the url as
|
3643
3564
|
# the string to display
|
3644
3565
|
if ptrue?(@cell_data_table) &&
|
3645
|
-
|
3646
|
-
|
3647
|
-
|
3648
|
-
link.display_on
|
3649
|
-
end
|
3566
|
+
ptrue?(@cell_data_table[row_num]) &&
|
3567
|
+
ptrue?(@cell_data_table[row_num][col_num]) && @cell_data_table[row_num][col_num].display_url_string?
|
3568
|
+
link.display_on
|
3650
3569
|
end
|
3651
3570
|
|
3652
3571
|
if link.respond_to?(:external_hyper_link)
|
@@ -3672,7 +3591,7 @@ EOS
|
|
3672
3591
|
#
|
3673
3592
|
# Write the <tabColor> element.
|
3674
3593
|
#
|
3675
|
-
def write_tab_color
|
3594
|
+
def write_tab_color # :nodoc:
|
3676
3595
|
return unless tab_color?
|
3677
3596
|
|
3678
3597
|
@writer.empty_tag(
|
@@ -3701,7 +3620,7 @@ EOS
|
|
3701
3620
|
#
|
3702
3621
|
# Write the <sheetProtection> element.
|
3703
3622
|
#
|
3704
|
-
def write_sheet_protection
|
3623
|
+
def write_sheet_protection # :nodoc:
|
3705
3624
|
return unless protect?
|
3706
3625
|
|
3707
3626
|
attributes = []
|
@@ -3759,14 +3678,14 @@ EOS
|
|
3759
3678
|
#
|
3760
3679
|
# Write the <drawing> elements.
|
3761
3680
|
#
|
3762
|
-
def write_drawings
|
3681
|
+
def write_drawings # :nodoc:
|
3763
3682
|
increment_rel_id_and_write_r_id('drawing') if drawings?
|
3764
3683
|
end
|
3765
3684
|
|
3766
3685
|
#
|
3767
3686
|
# Write the <legacyDrawing> element.
|
3768
3687
|
#
|
3769
|
-
def write_legacy_drawing
|
3688
|
+
def write_legacy_drawing # :nodoc:
|
3770
3689
|
increment_rel_id_and_write_r_id('legacyDrawing') if has_vml?
|
3771
3690
|
end
|
3772
3691
|
|
@@ -3779,7 +3698,7 @@ EOS
|
|
3779
3698
|
# Increment the relationship id for any drawings or comments.
|
3780
3699
|
@rel_count += 1
|
3781
3700
|
|
3782
|
-
attributes = [
|
3701
|
+
attributes = [['r:id', "rId#{@rel_count}"]]
|
3783
3702
|
@writer.empty_tag('legacyDrawingHF', attributes)
|
3784
3703
|
end
|
3785
3704
|
|
@@ -3801,7 +3720,7 @@ EOS
|
|
3801
3720
|
#
|
3802
3721
|
# Write the underline font element.
|
3803
3722
|
#
|
3804
|
-
def write_underline(writer, underline)
|
3723
|
+
def write_underline(writer, underline) # :nodoc:
|
3805
3724
|
writer.empty_tag('u', underline_attributes(underline))
|
3806
3725
|
end
|
3807
3726
|
|
@@ -3811,7 +3730,7 @@ EOS
|
|
3811
3730
|
def write_table_parts
|
3812
3731
|
return if @tables.empty?
|
3813
3732
|
|
3814
|
-
@writer.tag_elements('tableParts', [
|
3733
|
+
@writer.tag_elements('tableParts', [['count', tables_count]]) do
|
3815
3734
|
tables_count.times { increment_rel_id_and_write_r_id('tablePart') }
|
3816
3735
|
end
|
3817
3736
|
end
|
@@ -3850,7 +3769,6 @@ EOS
|
|
3850
3769
|
def write_ext_list_data_bars
|
3851
3770
|
# Write the ext element.
|
3852
3771
|
write_ext('{78C0D931-6437-407d-A8EE-F0AAD7539E65}') do
|
3853
|
-
|
3854
3772
|
@writer.tag_elements('x14:conditionalFormattings') do
|
3855
3773
|
# Write each of the Excel 2010 conditional formatting data bar elements.
|
3856
3774
|
@data_bars_2010.each do |data_bar|
|
@@ -3860,16 +3778,16 @@ EOS
|
|
3860
3778
|
end
|
3861
3779
|
end
|
3862
3780
|
end
|
3781
|
+
|
3863
3782
|
#
|
3864
3783
|
# Write the <x14:conditionalFormatting> element.
|
3865
3784
|
#
|
3866
3785
|
def write_conditional_formatting_2010(data_bar)
|
3867
3786
|
xmlns_xm = 'http://schemas.microsoft.com/office/excel/2006/main'
|
3868
3787
|
|
3869
|
-
attributes = [
|
3788
|
+
attributes = [['xmlns:xm', xmlns_xm]]
|
3870
3789
|
|
3871
3790
|
@writer.tag_elements('x14:conditionalFormatting', attributes) do
|
3872
|
-
|
3873
3791
|
# Write the '<x14:cfRule element.
|
3874
3792
|
write_x14_cf_rule(data_bar)
|
3875
3793
|
|
@@ -3881,26 +3799,21 @@ EOS
|
|
3881
3799
|
write_x14_cfvo(data_bar[:x14_max_type], data_bar[:max_value])
|
3882
3800
|
|
3883
3801
|
# Write the x14:borderColor element.
|
3884
|
-
|
3885
|
-
write_x14_border_color(data_bar[:bar_border_color])
|
3886
|
-
end
|
3802
|
+
write_x14_border_color(data_bar[:bar_border_color]) unless ptrue?(data_bar[:bar_no_border])
|
3887
3803
|
|
3888
3804
|
# Write the x14:negativeFillColor element.
|
3889
|
-
|
3890
|
-
write_x14_negative_fill_color(data_bar[:bar_negative_color])
|
3891
|
-
end
|
3805
|
+
write_x14_negative_fill_color(data_bar[:bar_negative_color]) unless ptrue?(data_bar[:bar_negative_color_same])
|
3892
3806
|
|
3893
3807
|
# Write the x14:negativeBorderColor element.
|
3894
3808
|
if !ptrue?(data_bar[:bar_no_border]) &&
|
3895
3809
|
!ptrue?(data_bar[:bar_negative_border_color_same])
|
3896
3810
|
write_x14_negative_border_color(
|
3897
|
-
data_bar[:bar_negative_border_color]
|
3811
|
+
data_bar[:bar_negative_border_color]
|
3812
|
+
)
|
3898
3813
|
end
|
3899
3814
|
|
3900
3815
|
# Write the x14:axisColor element.
|
3901
|
-
if data_bar[:bar_axis_position] != 'none'
|
3902
|
-
write_x14_axis_color(data_bar[:bar_axis_color])
|
3903
|
-
end
|
3816
|
+
write_x14_axis_color(data_bar[:bar_axis_color]) if data_bar[:bar_axis_position] != 'none'
|
3904
3817
|
|
3905
3818
|
# Write closing elements.
|
3906
3819
|
@writer.end_tag('x14:dataBar')
|
@@ -3915,9 +3828,9 @@ EOS
|
|
3915
3828
|
# Write the <cfvo> element.
|
3916
3829
|
#
|
3917
3830
|
def write_x14_cfvo(type, value)
|
3918
|
-
attributes = [
|
3831
|
+
attributes = [['type', type]]
|
3919
3832
|
|
3920
|
-
if %w
|
3833
|
+
if %w[min max autoMin autoMax].include?(type)
|
3921
3834
|
@writer.empty_tag('x14:cfvo', attributes)
|
3922
3835
|
else
|
3923
3836
|
@writer.tag_elements('x14:cfvo', attributes) do
|
@@ -3939,7 +3852,6 @@ EOS
|
|
3939
3852
|
]
|
3940
3853
|
|
3941
3854
|
@writer.start_tag('x14:cfRule', attributes)
|
3942
|
-
|
3943
3855
|
end
|
3944
3856
|
|
3945
3857
|
#
|
@@ -3954,32 +3866,22 @@ EOS
|
|
3954
3866
|
['maxLength', max_length]
|
3955
3867
|
]
|
3956
3868
|
|
3957
|
-
attributes << ['border', 1]
|
3869
|
+
attributes << ['border', 1] unless ptrue?(data_bar[:bar_no_border])
|
3958
3870
|
attributes << ['gradient', 0] if ptrue?(data_bar[:bar_solid])
|
3959
3871
|
|
3960
|
-
if data_bar[:bar_direction] == 'left'
|
3961
|
-
|
3962
|
-
end
|
3963
|
-
if data_bar[:bar_direction] == 'right'
|
3964
|
-
attributes << ['direction', 'rightToLeft']
|
3965
|
-
end
|
3872
|
+
attributes << %w[direction leftToRight] if data_bar[:bar_direction] == 'left'
|
3873
|
+
attributes << %w[direction rightToLeft] if data_bar[:bar_direction] == 'right'
|
3966
3874
|
|
3967
|
-
if ptrue?(data_bar[:bar_negative_color_same])
|
3968
|
-
attributes << ['negativeBarColorSameAsPositive', 1]
|
3969
|
-
end
|
3875
|
+
attributes << ['negativeBarColorSameAsPositive', 1] if ptrue?(data_bar[:bar_negative_color_same])
|
3970
3876
|
|
3971
3877
|
if !ptrue?(data_bar[:bar_no_border]) &&
|
3972
3878
|
!ptrue?(data_bar[:bar_negative_border_color_same])
|
3973
3879
|
attributes << ['negativeBarBorderColorSameAsPositive', 0]
|
3974
3880
|
end
|
3975
3881
|
|
3976
|
-
if data_bar[:bar_axis_position] == 'middle'
|
3977
|
-
attributes << ['axisPosition', 'middle']
|
3978
|
-
end
|
3882
|
+
attributes << %w[axisPosition middle] if data_bar[:bar_axis_position] == 'middle'
|
3979
3883
|
|
3980
|
-
if data_bar[:bar_axis_position] == 'none'
|
3981
|
-
attributes << ['axisPosition', 'none']
|
3982
|
-
end
|
3884
|
+
attributes << %w[axisPosition none] if data_bar[:bar_axis_position] == 'none'
|
3983
3885
|
|
3984
3886
|
@writer.start_tag('x14:dataBar', attributes)
|
3985
3887
|
end
|
@@ -3988,7 +3890,7 @@ EOS
|
|
3988
3890
|
# Write the <x14:borderColor> element.
|
3989
3891
|
#
|
3990
3892
|
def write_x14_border_color(rgb)
|
3991
|
-
attributes = [
|
3893
|
+
attributes = [['rgb', rgb]]
|
3992
3894
|
|
3993
3895
|
@writer.empty_tag('x14:borderColor', attributes)
|
3994
3896
|
end
|
@@ -3997,7 +3899,7 @@ EOS
|
|
3997
3899
|
# Write the <x14:negativeFillColor> element.
|
3998
3900
|
#
|
3999
3901
|
def write_x14_negative_fill_color(rgb)
|
4000
|
-
attributes = [
|
3902
|
+
attributes = [['rgb', rgb]]
|
4001
3903
|
|
4002
3904
|
@writer.empty_tag('x14:negativeFillColor', attributes)
|
4003
3905
|
end
|
@@ -4006,7 +3908,7 @@ EOS
|
|
4006
3908
|
# Write the <x14:negativeBorderColor> element.
|
4007
3909
|
#
|
4008
3910
|
def write_x14_negative_border_color(rgb)
|
4009
|
-
attributes = [
|
3911
|
+
attributes = [['rgb', rgb]]
|
4010
3912
|
|
4011
3913
|
@writer.empty_tag('x14:negativeBorderColor', attributes)
|
4012
3914
|
end
|
@@ -4015,7 +3917,7 @@ EOS
|
|
4015
3917
|
# Write the <x14:axisColor> element.
|
4016
3918
|
#
|
4017
3919
|
def write_x14_axis_color(rgb)
|
4018
|
-
attributes = [
|
3920
|
+
attributes = [['rgb', rgb]]
|
4019
3921
|
|
4020
3922
|
@writer.empty_tag('x14:axisColor', attributes)
|
4021
3923
|
end
|
@@ -4026,7 +3928,6 @@ EOS
|
|
4026
3928
|
def write_ext_list_sparklines
|
4027
3929
|
# Write the ext element.
|
4028
3930
|
write_ext('{05C60535-1F16-4fd2-B633-F4F36F0B64E0}') do
|
4029
|
-
|
4030
3931
|
# Write the x14:sparklineGroups element.
|
4031
3932
|
write_sparkline_groups
|
4032
3933
|
end
|
@@ -4038,7 +3939,7 @@ EOS
|
|
4038
3939
|
def write_sparklines(sparkline)
|
4039
3940
|
# Write the sparkline elements.
|
4040
3941
|
@writer.tag_elements('x14:sparklines') do
|
4041
|
-
(0..sparkline[:count]-1).each do |i|
|
3942
|
+
(0..sparkline[:count] - 1).each do |i|
|
4042
3943
|
range = sparkline[:ranges][i]
|
4043
3944
|
location = sparkline[:locations][i]
|
4044
3945
|
|
@@ -4052,14 +3953,14 @@ EOS
|
|
4052
3953
|
|
4053
3954
|
def sparkline_groups_attributes # :nodoc:
|
4054
3955
|
[
|
4055
|
-
|
3956
|
+
['xmlns:xm', "#{OFFICE_URL}excel/2006/main"]
|
4056
3957
|
]
|
4057
3958
|
end
|
4058
3959
|
|
4059
3960
|
#
|
4060
3961
|
# Write the <dataValidations> element.
|
4061
3962
|
#
|
4062
|
-
def write_data_validations
|
3963
|
+
def write_data_validations # :nodoc:
|
4063
3964
|
write_some_elements('dataValidations', @validations) do
|
4064
3965
|
@validations.each { |validation| validation.write_data_validation(@writer) }
|
4065
3966
|
end
|
@@ -4068,7 +3969,7 @@ EOS
|
|
4068
3969
|
#
|
4069
3970
|
# Write the Worksheet conditional formats.
|
4070
3971
|
#
|
4071
|
-
def write_conditional_formats
|
3972
|
+
def write_conditional_formats # :nodoc:
|
4072
3973
|
@cond_formats.keys.sort.each do |range|
|
4073
3974
|
write_conditional_formatting(range, @cond_formats[range])
|
4074
3975
|
end
|
@@ -4077,14 +3978,15 @@ EOS
|
|
4077
3978
|
#
|
4078
3979
|
# Write the <conditionalFormatting> element.
|
4079
3980
|
#
|
4080
|
-
def write_conditional_formatting(range, cond_formats)
|
4081
|
-
@writer.tag_elements('conditionalFormatting', [
|
3981
|
+
def write_conditional_formatting(range, cond_formats) # :nodoc:
|
3982
|
+
@writer.tag_elements('conditionalFormatting', [['sqref', range]]) do
|
4082
3983
|
cond_formats.each { |cond_format| cond_format.write_cf_rule }
|
4083
3984
|
end
|
4084
3985
|
end
|
4085
3986
|
|
4086
|
-
def store_data_to_table(cell_data)
|
4087
|
-
row
|
3987
|
+
def store_data_to_table(cell_data) # :nodoc:
|
3988
|
+
row = cell_data.row
|
3989
|
+
col = cell_data.col
|
4088
3990
|
if @cell_data_table[row]
|
4089
3991
|
@cell_data_table[row][col] = cell_data
|
4090
3992
|
else
|
@@ -4103,44 +4005,40 @@ EOS
|
|
4103
4005
|
# optimisation and isn't strictly required. However, it makes comparing
|
4104
4006
|
# files easier.
|
4105
4007
|
#
|
4106
|
-
def calculate_spans
|
4008
|
+
def calculate_spans # :nodoc:
|
4107
4009
|
span_min = nil
|
4108
4010
|
span_max = 0
|
4109
4011
|
spans = []
|
4110
4012
|
|
4111
|
-
(@dim_rowmin
|
4112
|
-
if @cell_data_table[row_num]
|
4113
|
-
span_min, span_max = calc_spans(@cell_data_table, row_num, span_min, span_max)
|
4114
|
-
end
|
4013
|
+
(@dim_rowmin..@dim_rowmax).each do |row_num|
|
4014
|
+
span_min, span_max = calc_spans(@cell_data_table, row_num, span_min, span_max) if @cell_data_table[row_num]
|
4115
4015
|
|
4116
4016
|
# Calculate spans for comments.
|
4117
|
-
if @comments[row_num]
|
4118
|
-
span_min, span_max = calc_spans(@comments, row_num, span_min, span_max)
|
4119
|
-
end
|
4017
|
+
span_min, span_max = calc_spans(@comments, row_num, span_min, span_max) if @comments[row_num]
|
4120
4018
|
|
4121
|
-
|
4122
|
-
|
4123
|
-
|
4124
|
-
|
4125
|
-
|
4126
|
-
|
4127
|
-
|
4128
|
-
|
4129
|
-
|
4019
|
+
next unless ((row_num + 1) % 16 == 0) || (row_num == @dim_rowmax)
|
4020
|
+
|
4021
|
+
span_index = row_num / 16
|
4022
|
+
next unless span_min
|
4023
|
+
|
4024
|
+
span_min += 1
|
4025
|
+
span_max += 1
|
4026
|
+
spans[span_index] = "#{span_min}:#{span_max}"
|
4027
|
+
span_min = nil
|
4130
4028
|
end
|
4131
4029
|
|
4132
4030
|
@row_spans = spans
|
4133
4031
|
end
|
4134
4032
|
|
4135
4033
|
def calc_spans(data, row_num, span_min, span_max)
|
4136
|
-
(@dim_colmin
|
4034
|
+
(@dim_colmin..@dim_colmax).each do |col_num|
|
4137
4035
|
if data[row_num][col_num]
|
4138
|
-
if
|
4139
|
-
span_min = col_num
|
4140
|
-
span_max = col_num
|
4141
|
-
else
|
4036
|
+
if span_min
|
4142
4037
|
span_min = col_num if col_num < span_min
|
4143
4038
|
span_max = col_num if col_num > span_max
|
4039
|
+
else
|
4040
|
+
span_min = col_num
|
4041
|
+
span_max = col_num
|
4144
4042
|
end
|
4145
4043
|
end
|
4146
4044
|
end
|
@@ -4151,7 +4049,7 @@ EOS
|
|
4151
4049
|
# Add a string to the shared string table, if it isn't already there, and
|
4152
4050
|
# return the string index.
|
4153
4051
|
#
|
4154
|
-
def shared_string_index(str)
|
4052
|
+
def shared_string_index(str) # :nodoc:
|
4155
4053
|
@workbook.shared_string_index(str)
|
4156
4054
|
end
|
4157
4055
|
|
@@ -4161,7 +4059,7 @@ EOS
|
|
4161
4059
|
# Convert zero indexed rows and columns to the format required by worksheet
|
4162
4060
|
# named ranges, eg, "Sheet1!$A$1:$C$13".
|
4163
4061
|
#
|
4164
|
-
def convert_name_area(row_num_1, col_num_1, row_num_2, col_num_2)
|
4062
|
+
def convert_name_area(row_num_1, col_num_1, row_num_2, col_num_2) # :nodoc:
|
4165
4063
|
range1 = ''
|
4166
4064
|
range2 = ''
|
4167
4065
|
row_col_only = false
|
@@ -4187,25 +4085,25 @@ EOS
|
|
4187
4085
|
end
|
4188
4086
|
|
4189
4087
|
# A repeated range is only written once (if it isn't a special case).
|
4190
|
-
if range1 == range2 && !row_col_only
|
4191
|
-
|
4192
|
-
|
4193
|
-
|
4194
|
-
|
4088
|
+
area = if range1 == range2 && !row_col_only
|
4089
|
+
range1
|
4090
|
+
else
|
4091
|
+
"#{range1}:#{range2}"
|
4092
|
+
end
|
4195
4093
|
|
4196
4094
|
# Build up the print area range "Sheet1!$A$1:$C$13".
|
4197
4095
|
"#{quote_sheetname(@name)}!#{area}"
|
4198
4096
|
end
|
4199
4097
|
|
4200
|
-
def fit_page?
|
4098
|
+
def fit_page? # :nodoc:
|
4201
4099
|
@page_setup.fit_page
|
4202
4100
|
end
|
4203
4101
|
|
4204
|
-
def filter_on?
|
4102
|
+
def filter_on? # :nodoc:
|
4205
4103
|
ptrue?(@filter_on)
|
4206
4104
|
end
|
4207
4105
|
|
4208
|
-
def tab_color?
|
4106
|
+
def tab_color? # :nodoc:
|
4209
4107
|
ptrue?(@tab_color)
|
4210
4108
|
end
|
4211
4109
|
|
@@ -4217,37 +4115,37 @@ EOS
|
|
4217
4115
|
ptrue?(@vba_codename)
|
4218
4116
|
end
|
4219
4117
|
|
4220
|
-
def zoom_scale_normal?
|
4118
|
+
def zoom_scale_normal? # :nodoc:
|
4221
4119
|
ptrue?(@zoom_scale_normal)
|
4222
4120
|
end
|
4223
4121
|
|
4224
|
-
def page_view?
|
4122
|
+
def page_view? # :nodoc:
|
4225
4123
|
!!@page_view
|
4226
4124
|
end
|
4227
4125
|
|
4228
|
-
def right_to_left?
|
4126
|
+
def right_to_left? # :nodoc:
|
4229
4127
|
!!@right_to_left
|
4230
4128
|
end
|
4231
4129
|
|
4232
|
-
def show_zeros?
|
4130
|
+
def show_zeros? # :nodoc:
|
4233
4131
|
!!@show_zeros
|
4234
4132
|
end
|
4235
4133
|
|
4236
|
-
def protect?
|
4134
|
+
def protect? # :nodoc:
|
4237
4135
|
!!@protect
|
4238
4136
|
end
|
4239
4137
|
|
4240
|
-
def autofilter_ref?
|
4138
|
+
def autofilter_ref? # :nodoc:
|
4241
4139
|
!!@autofilter_ref
|
4242
4140
|
end
|
4243
4141
|
|
4244
|
-
def drawings?
|
4142
|
+
def drawings? # :nodoc:
|
4245
4143
|
!!@drawings
|
4246
4144
|
end
|
4247
4145
|
|
4248
|
-
def remove_white_space(margin)
|
4146
|
+
def remove_white_space(margin) # :nodoc:
|
4249
4147
|
if margin.respond_to?(:gsub)
|
4250
|
-
margin.gsub(/[^\d
|
4148
|
+
margin.gsub(/[^\d.]/, '')
|
4251
4149
|
else
|
4252
4150
|
margin
|
4253
4151
|
end
|
@@ -4260,15 +4158,15 @@ EOS
|
|
4260
4158
|
col_cell = xl_rowcol_to_cell(0, left_col)
|
4261
4159
|
|
4262
4160
|
@selections <<
|
4263
|
-
[
|
4264
|
-
[
|
4265
|
-
[
|
4161
|
+
['topRight', col_cell, col_cell] <<
|
4162
|
+
['bottomLeft', row_cell, row_cell] <<
|
4163
|
+
['bottomRight', active_cell, sqref]
|
4266
4164
|
elsif col > 0
|
4267
4165
|
active_pane = 'topRight'
|
4268
|
-
@selections << [
|
4166
|
+
@selections << ['topRight', active_cell, sqref]
|
4269
4167
|
else
|
4270
4168
|
active_pane = 'bottomLeft'
|
4271
|
-
@selections << [
|
4169
|
+
@selections << ['bottomLeft', active_cell, sqref]
|
4272
4170
|
end
|
4273
4171
|
active_pane
|
4274
4172
|
end
|
@@ -4279,16 +4177,15 @@ EOS
|
|
4279
4177
|
col_letter = col
|
4280
4178
|
|
4281
4179
|
# Convert col ref to a cell ref and then to a col number.
|
4282
|
-
|
4180
|
+
_dummy, col = substitute_cellref("#{col}1")
|
4283
4181
|
raise "Invalid column '#{col_letter}'" if col >= COL_MAX
|
4284
4182
|
end
|
4285
4183
|
|
4286
4184
|
col_first, col_last = @filter_range
|
4287
4185
|
|
4288
4186
|
# Reject column if it is outside filter range.
|
4289
|
-
if col < col_first or col > col_last
|
4290
|
-
|
4291
|
-
end
|
4187
|
+
raise "Column '#{col}' outside autofilter column range (#{col_first} .. #{col_last})" if col < col_first or col > col_last
|
4188
|
+
|
4292
4189
|
col
|
4293
4190
|
end
|
4294
4191
|
|
@@ -4300,7 +4197,7 @@ EOS
|
|
4300
4197
|
|
4301
4198
|
ignore = @ignore_errors
|
4302
4199
|
|
4303
|
-
@writer.tag_elements('ignoredErrors'
|
4200
|
+
@writer.tag_elements('ignoredErrors') do
|
4304
4201
|
{
|
4305
4202
|
:number_stored_as_text => 'numberStoredAsText',
|
4306
4203
|
:eval_error => 'evalError',
|
@@ -4312,9 +4209,7 @@ EOS
|
|
4312
4209
|
:calculated_column => 'calculatedColumn',
|
4313
4210
|
:two_digit_text_year => 'twoDigitTextYear'
|
4314
4211
|
}.each do |key, value|
|
4315
|
-
if ignore[key]
|
4316
|
-
write_ignored_error(value, ignore[key])
|
4317
|
-
end
|
4212
|
+
write_ignored_error(value, ignore[key]) if ignore[key]
|
4318
4213
|
end
|
4319
4214
|
end
|
4320
4215
|
end
|