write_xlsx 1.09.3 → 1.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +128 -0
- data/.rubocop_todo.yml +445 -0
- data/Changes +49 -0
- data/Gemfile +2 -0
- data/LICENSE.txt +1 -1
- data/README.md +2 -2
- data/Rakefile +14 -8
- data/examples/array_formula.rb +2 -2
- data/examples/autofilter.rb +50 -26
- data/examples/autofit.rb +37 -0
- data/examples/chart_area.rb +16 -16
- data/examples/chart_bar.rb +16 -16
- data/examples/chart_clustered.rb +12 -12
- data/examples/chart_column.rb +16 -16
- data/examples/chart_combined.rb +27 -28
- data/examples/chart_data_labels.rb +103 -115
- data/examples/chart_data_table.rb +29 -29
- data/examples/chart_data_tools.rb +55 -61
- data/examples/chart_doughnut.rb +34 -38
- data/examples/chart_gauge.rb +20 -20
- data/examples/chart_line.rb +44 -45
- data/examples/chart_pareto.rb +18 -18
- data/examples/chart_pie.rb +22 -22
- data/examples/chart_radar.rb +41 -47
- data/examples/chart_scatter.rb +16 -16
- data/examples/chart_secondary_axis.rb +16 -16
- data/examples/chart_stock.rb +22 -23
- data/examples/chart_styles.rb +8 -9
- data/examples/colors.rb +31 -34
- data/examples/comments1.rb +1 -0
- data/examples/comments2.rb +85 -114
- data/examples/conditional_format.rb +164 -155
- data/examples/data_validate.rb +135 -122
- data/examples/date_time.rb +30 -30
- data/examples/defined_name.rb +5 -5
- data/examples/demo.rb +14 -16
- data/examples/diag_border.rb +7 -8
- data/examples/dynamic_arrays.rb +247 -0
- data/examples/formats.rb +95 -107
- data/examples/headers.rb +2 -7
- data/examples/hyperlink1.rb +5 -6
- data/examples/ignore_errors.rb +2 -2
- data/examples/indent.rb +2 -2
- data/examples/lambda.rb +43 -0
- data/examples/macros.rb +6 -6
- data/examples/merge1.rb +1 -4
- data/examples/merge2.rb +9 -12
- data/examples/merge3.rb +6 -7
- data/examples/merge4.rb +22 -24
- data/examples/merge5.rb +24 -24
- data/examples/merge6.rb +8 -8
- data/examples/outline.rb +9 -17
- data/examples/outline_collapsed.rb +7 -7
- data/examples/panes.rb +16 -16
- data/examples/properties.rb +9 -9
- data/examples/protection.rb +2 -2
- data/examples/rich_strings.rb +25 -17
- 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 +9 -9
- data/examples/shape6.rb +9 -9
- data/examples/shape7.rb +15 -15
- data/examples/shape8.rb +15 -15
- data/examples/shape_all.rb +7 -7
- data/examples/sparklines1.rb +23 -24
- data/examples/sparklines2.rb +152 -152
- data/examples/tables.rb +119 -127
- data/examples/update_range_format_with_params.rb +4 -4
- data/examples/watermark.png +0 -0
- data/examples/watermark.rb +26 -0
- data/lib/write_xlsx/chart/area.rb +9 -9
- data/lib/write_xlsx/chart/axis.rb +13 -24
- data/lib/write_xlsx/chart/bar.rb +9 -12
- data/lib/write_xlsx/chart/caption.rb +1 -0
- data/lib/write_xlsx/chart/column.rb +4 -4
- data/lib/write_xlsx/chart/doughnut.rb +4 -2
- data/lib/write_xlsx/chart/legend.rb +1 -0
- data/lib/write_xlsx/chart/line.rb +18 -18
- data/lib/write_xlsx/chart/pie.rb +27 -14
- data/lib/write_xlsx/chart/radar.rb +10 -10
- data/lib/write_xlsx/chart/scatter.rb +23 -25
- data/lib/write_xlsx/chart/series.rb +112 -73
- data/lib/write_xlsx/chart/stock.rb +30 -24
- data/lib/write_xlsx/chart.rb +320 -269
- data/lib/write_xlsx/chartsheet.rb +33 -32
- data/lib/write_xlsx/col_name.rb +9 -3
- data/lib/write_xlsx/colors.rb +21 -19
- data/lib/write_xlsx/compatibility.rb +15 -15
- data/lib/write_xlsx/drawing.rb +72 -63
- data/lib/write_xlsx/format.rb +71 -69
- data/lib/write_xlsx/formats.rb +2 -0
- data/lib/write_xlsx/gradient.rb +7 -9
- data/lib/write_xlsx/package/app.rb +17 -16
- data/lib/write_xlsx/package/button.rb +9 -5
- data/lib/write_xlsx/package/comments.rb +36 -38
- data/lib/write_xlsx/package/conditional_format.rb +112 -120
- data/lib/write_xlsx/package/content_types.rb +21 -21
- data/lib/write_xlsx/package/core.rb +6 -4
- data/lib/write_xlsx/package/custom.rb +8 -7
- data/lib/write_xlsx/package/metadata.rb +7 -5
- data/lib/write_xlsx/package/packager.rb +39 -25
- data/lib/write_xlsx/package/relationships.rb +2 -1
- data/lib/write_xlsx/package/shared_strings.rb +17 -15
- data/lib/write_xlsx/package/styles.rb +74 -90
- data/lib/write_xlsx/package/table.rb +186 -131
- data/lib/write_xlsx/package/theme.rb +4 -3
- data/lib/write_xlsx/package/vml.rb +25 -31
- data/lib/write_xlsx/package/xml_writer_simple.rb +46 -40
- data/lib/write_xlsx/shape.rb +26 -36
- data/lib/write_xlsx/sheets.rb +41 -45
- data/lib/write_xlsx/sparkline.rb +299 -307
- data/lib/write_xlsx/utility.rb +210 -188
- data/lib/write_xlsx/version.rb +3 -1
- data/lib/write_xlsx/workbook.rb +289 -331
- data/lib/write_xlsx/worksheet/cell_data.rb +87 -66
- data/lib/write_xlsx/worksheet/data_validation.rb +79 -74
- data/lib/write_xlsx/worksheet/hyperlink.rb +14 -19
- data/lib/write_xlsx/worksheet/page_setup.rb +10 -11
- data/lib/write_xlsx/worksheet.rb +1449 -866
- data/lib/write_xlsx/zip_file_utils.rb +33 -34
- data/lib/write_xlsx.rb +2 -3
- data/write_xlsx.gemspec +26 -19
- metadata +72 -3884
- 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/workbook.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/packager'
|
|
5
6
|
require 'write_xlsx/sheets'
|
|
@@ -16,11 +17,9 @@ require 'tempfile'
|
|
|
16
17
|
require 'digest/md5'
|
|
17
18
|
|
|
18
19
|
module Writexlsx
|
|
19
|
-
|
|
20
20
|
OFFICE_URL = 'http://schemas.microsoft.com/office/' # :nodoc:
|
|
21
21
|
|
|
22
22
|
class Workbook
|
|
23
|
-
|
|
24
23
|
include Writexlsx::Utility
|
|
25
24
|
|
|
26
25
|
attr_writer :firstsheet # :nodoc:
|
|
@@ -35,16 +34,18 @@ module Writexlsx
|
|
|
35
34
|
attr_reader :excel2003_style # :nodoc:
|
|
36
35
|
attr_reader :max_url_length # :nodoc:
|
|
37
36
|
attr_reader :strings_to_urls # :nodoc:
|
|
38
|
-
attr_reader :default_url_format # :nodoc:
|
|
39
37
|
attr_reader :read_only # :nodoc:
|
|
40
38
|
|
|
41
39
|
def initialize(file, *option_params)
|
|
42
40
|
options, default_formats = process_workbook_options(*option_params)
|
|
43
41
|
@writer = Package::XMLWriterSimple.new
|
|
44
42
|
|
|
45
|
-
@file
|
|
43
|
+
@file = file
|
|
46
44
|
@tempdir = options[:tempdir] ||
|
|
47
|
-
|
|
45
|
+
File.join(
|
|
46
|
+
Dir.tmpdir,
|
|
47
|
+
Digest::MD5.hexdigest("#{Time.now.to_f}-#{Process.pid}")
|
|
48
|
+
)
|
|
48
49
|
@date_1904 = options[:date_1904] || false
|
|
49
50
|
@activesheet = 0
|
|
50
51
|
@firstsheet = 0
|
|
@@ -57,7 +58,7 @@ module Writexlsx
|
|
|
57
58
|
@xf_formats = []
|
|
58
59
|
@dxf_formats = []
|
|
59
60
|
@font_count = 0
|
|
60
|
-
@
|
|
61
|
+
@num_formats = []
|
|
61
62
|
@defined_names = []
|
|
62
63
|
@named_ranges = []
|
|
63
64
|
@custom_colors = []
|
|
@@ -73,7 +74,7 @@ module Writexlsx
|
|
|
73
74
|
@table_count = 0
|
|
74
75
|
@image_types = {}
|
|
75
76
|
@images = []
|
|
76
|
-
@strings_to_urls =
|
|
77
|
+
@strings_to_urls = options[:strings_to_urls].nil? || options[:strings_to_urls] ? true : false
|
|
77
78
|
|
|
78
79
|
@max_url_length = 2079
|
|
79
80
|
@has_comments = false
|
|
@@ -94,18 +95,18 @@ module Writexlsx
|
|
|
94
95
|
|
|
95
96
|
if @excel2003_style
|
|
96
97
|
add_format(default_formats.merge(
|
|
97
|
-
:
|
|
98
|
-
:
|
|
99
|
-
:
|
|
100
|
-
:
|
|
101
|
-
:
|
|
98
|
+
xf_index: 0,
|
|
99
|
+
font_family: 0,
|
|
100
|
+
font: 'Arial',
|
|
101
|
+
size: 10,
|
|
102
|
+
theme: -1
|
|
102
103
|
))
|
|
103
104
|
else
|
|
104
|
-
add_format(default_formats.merge(:
|
|
105
|
+
add_format(default_formats.merge(xf_index: 0))
|
|
105
106
|
end
|
|
106
107
|
|
|
107
108
|
# Add a default URL format.
|
|
108
|
-
@default_url_format = add_format(:
|
|
109
|
+
@default_url_format = add_format(hyperlink: 1)
|
|
109
110
|
|
|
110
111
|
set_color_palette
|
|
111
112
|
end
|
|
@@ -132,7 +133,7 @@ module Writexlsx
|
|
|
132
133
|
if args.empty?
|
|
133
134
|
@worksheets
|
|
134
135
|
else
|
|
135
|
-
args.collect{|i| @worksheets[i] }
|
|
136
|
+
args.collect { |i| @worksheets[i] }
|
|
136
137
|
end
|
|
137
138
|
end
|
|
138
139
|
|
|
@@ -148,9 +149,8 @@ module Writexlsx
|
|
|
148
149
|
# Set the date system: false = 1900 (the default), true = 1904
|
|
149
150
|
#
|
|
150
151
|
def set_1904(mode = true)
|
|
151
|
-
unless sheets.empty?
|
|
152
|
-
|
|
153
|
-
end
|
|
152
|
+
raise "set_1904() must be called before add_worksheet()" unless sheets.empty?
|
|
153
|
+
|
|
154
154
|
@date_1904 = ptrue?(mode)
|
|
155
155
|
end
|
|
156
156
|
|
|
@@ -168,31 +168,29 @@ module Writexlsx
|
|
|
168
168
|
#
|
|
169
169
|
# user must not use. it is internal method.
|
|
170
170
|
#
|
|
171
|
-
def set_xml_writer(filename)
|
|
171
|
+
def set_xml_writer(filename) # :nodoc:
|
|
172
172
|
@writer.set_xml_writer(filename)
|
|
173
173
|
end
|
|
174
174
|
|
|
175
175
|
#
|
|
176
176
|
# user must not use. it is internal method.
|
|
177
177
|
#
|
|
178
|
-
def xml_str
|
|
178
|
+
def xml_str # :nodoc:
|
|
179
179
|
@writer.string
|
|
180
180
|
end
|
|
181
181
|
|
|
182
182
|
#
|
|
183
183
|
# user must not use. it is internal method.
|
|
184
184
|
#
|
|
185
|
-
def assemble_xml_file
|
|
185
|
+
def assemble_xml_file # :nodoc:
|
|
186
186
|
return unless @writer
|
|
187
187
|
|
|
188
188
|
# Prepare format object for passing to Style.rb.
|
|
189
189
|
prepare_format_properties
|
|
190
190
|
|
|
191
191
|
write_xml_declaration do
|
|
192
|
-
|
|
193
192
|
# Write the root workbook element.
|
|
194
193
|
write_workbook do
|
|
195
|
-
|
|
196
194
|
# Write the XLSX file version.
|
|
197
195
|
write_file_version
|
|
198
196
|
|
|
@@ -215,7 +213,7 @@ module Writexlsx
|
|
|
215
213
|
write_calc_pr
|
|
216
214
|
|
|
217
215
|
# Write the workbook extension storage.
|
|
218
|
-
#write_ext_lst
|
|
216
|
+
# write_ext_lst
|
|
219
217
|
end
|
|
220
218
|
end
|
|
221
219
|
end
|
|
@@ -224,7 +222,7 @@ module Writexlsx
|
|
|
224
222
|
# At least one worksheet should be added to a new workbook. A worksheet is used to write data into cells:
|
|
225
223
|
#
|
|
226
224
|
def add_worksheet(name = '')
|
|
227
|
-
name
|
|
225
|
+
name = check_sheetname(name)
|
|
228
226
|
worksheet = Worksheet.new(self, @worksheets.size, name)
|
|
229
227
|
@worksheets << worksheet
|
|
230
228
|
worksheet
|
|
@@ -257,7 +255,7 @@ module Writexlsx
|
|
|
257
255
|
# Check the worksheet name for non-embedded charts.
|
|
258
256
|
sheetname = check_chart_sheetname(name)
|
|
259
257
|
chartsheet = Chartsheet.new(self, @worksheets.size, sheetname)
|
|
260
|
-
chartsheet.chart
|
|
258
|
+
chartsheet.chart = chart
|
|
261
259
|
@worksheets << chartsheet
|
|
262
260
|
end
|
|
263
261
|
@charts << chart
|
|
@@ -275,9 +273,7 @@ module Writexlsx
|
|
|
275
273
|
#
|
|
276
274
|
def add_format(property_hash = {})
|
|
277
275
|
properties = {}
|
|
278
|
-
if @excel2003_style
|
|
279
|
-
properties.update(:font => 'Arial', :size => 10, :theme => -1)
|
|
280
|
-
end
|
|
276
|
+
properties.update(font: 'Arial', size: 10, theme: -1) if @excel2003_style
|
|
281
277
|
properties.update(property_hash)
|
|
282
278
|
|
|
283
279
|
format = Format.new(@formats, properties)
|
|
@@ -296,7 +292,7 @@ module Writexlsx
|
|
|
296
292
|
shape.palette = @palette
|
|
297
293
|
|
|
298
294
|
@shapes ||= []
|
|
299
|
-
@shapes << shape #Store shape reference.
|
|
295
|
+
@shapes << shape # Store shape reference.
|
|
300
296
|
shape
|
|
301
297
|
end
|
|
302
298
|
|
|
@@ -310,63 +306,55 @@ module Writexlsx
|
|
|
310
306
|
|
|
311
307
|
# Local defined names are formatted like "Sheet1!name".
|
|
312
308
|
if name =~ /^(.*)!(.*)$/
|
|
313
|
-
sheetname =
|
|
314
|
-
name =
|
|
309
|
+
sheetname = ::Regexp.last_match(1)
|
|
310
|
+
name = ::Regexp.last_match(2)
|
|
315
311
|
sheet_index = @worksheets.index_by_name(sheetname)
|
|
316
312
|
else
|
|
317
313
|
sheet_index = -1 # Use -1 to indicate global names.
|
|
318
314
|
end
|
|
319
315
|
|
|
320
316
|
# Raise if the sheet index wasn't found.
|
|
321
|
-
|
|
322
|
-
raise "Unknown sheet name #{sheetname} in defined_name()"
|
|
323
|
-
end
|
|
317
|
+
raise "Unknown sheet name #{sheetname} in defined_name()" unless sheet_index
|
|
324
318
|
|
|
325
319
|
# Raise if the name contains invalid chars as defined by Excel help.
|
|
326
320
|
# Refer to the following to see Excel's syntax rules for defined names:
|
|
327
321
|
# http://office.microsoft.com/en-001/excel-help/define-and-use-names-in-formulas-HA010147120.aspx#BMsyntax_rules_for_names
|
|
328
322
|
#
|
|
329
|
-
if name =~ /\A[-0-9 !"
|
|
330
|
-
raise "Invalid characters in name '#{name}' used in defined_name()"
|
|
331
|
-
end
|
|
323
|
+
raise "Invalid characters in name '#{name}' used in defined_name()" if name =~ /\A[-0-9 !"#$%&'()*+,.:;<=>?@\[\]\^`{}~]/ || name =~ /.+[- !"#$%&'()*+,\\:;<=>?@\[\]\^`{}~]/
|
|
332
324
|
|
|
333
325
|
# Raise if the name looks like a cell name.
|
|
334
|
-
if name =~
|
|
335
|
-
raise "Invalid name '#{name}' looks like a cell name in defined_name()"
|
|
336
|
-
end
|
|
326
|
+
raise "Invalid name '#{name}' looks like a cell name in defined_name()" if name =~ /^[a-zA-Z][a-zA-Z]?[a-dA-D]?[0-9]+$/
|
|
337
327
|
|
|
338
328
|
# Raise if the name looks like a R1C1
|
|
339
|
-
if name =~ /\A[rcRC]\Z/ || name =~ /\A[rcRC]\d+[rcRC]\d+\Z/
|
|
340
|
-
raise "Invalid name '#{name}' like a RC cell ref in defined_name()"
|
|
341
|
-
end
|
|
329
|
+
raise "Invalid name '#{name}' like a RC cell ref in defined_name()" if name =~ /\A[rcRC]\Z/ || name =~ /\A[rcRC]\d+[rcRC]\d+\Z/
|
|
342
330
|
|
|
343
|
-
@defined_names.push([
|
|
331
|
+
@defined_names.push([name, sheet_index, formula.sub(/^=/, '')])
|
|
344
332
|
end
|
|
345
333
|
|
|
346
334
|
#
|
|
347
335
|
# Set the workbook size.
|
|
348
336
|
#
|
|
349
337
|
def set_size(width = nil, height = nil)
|
|
350
|
-
if ptrue?(width)
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
338
|
+
@window_width = if ptrue?(width)
|
|
339
|
+
# Convert to twips at 96 dpi.
|
|
340
|
+
width.to_i * 1440 / 96
|
|
341
|
+
else
|
|
342
|
+
16095
|
|
343
|
+
end
|
|
356
344
|
|
|
357
|
-
if ptrue?(height)
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
345
|
+
@window_height = if ptrue?(height)
|
|
346
|
+
# Convert to twips at 96 dpi.
|
|
347
|
+
height.to_i * 1440 / 96
|
|
348
|
+
else
|
|
349
|
+
9660
|
|
350
|
+
end
|
|
363
351
|
end
|
|
364
352
|
|
|
365
353
|
#
|
|
366
354
|
# Set the ratio of space for worksheet tabs.
|
|
367
355
|
#
|
|
368
356
|
def set_tab_ratio(tab_ratio = nil)
|
|
369
|
-
return
|
|
357
|
+
return unless tab_ratio
|
|
370
358
|
|
|
371
359
|
if tab_ratio < 0 || tab_ratio > 100
|
|
372
360
|
raise "Tab ratio outside range: 0 <= zoom <= 100"
|
|
@@ -388,18 +376,18 @@ module Writexlsx
|
|
|
388
376
|
|
|
389
377
|
# List of valid input parameters.
|
|
390
378
|
valid = {
|
|
391
|
-
:
|
|
392
|
-
:
|
|
393
|
-
:
|
|
394
|
-
:
|
|
395
|
-
:
|
|
396
|
-
:
|
|
397
|
-
:
|
|
398
|
-
:
|
|
399
|
-
:
|
|
400
|
-
:
|
|
401
|
-
:
|
|
402
|
-
:
|
|
379
|
+
title: 1,
|
|
380
|
+
subject: 1,
|
|
381
|
+
author: 1,
|
|
382
|
+
keywords: 1,
|
|
383
|
+
comments: 1,
|
|
384
|
+
last_author: 1,
|
|
385
|
+
created: 1,
|
|
386
|
+
category: 1,
|
|
387
|
+
manager: 1,
|
|
388
|
+
company: 1,
|
|
389
|
+
status: 1,
|
|
390
|
+
hyperlink_base: 1
|
|
403
391
|
}
|
|
404
392
|
|
|
405
393
|
# Check for valid input parameters.
|
|
@@ -417,40 +405,34 @@ module Writexlsx
|
|
|
417
405
|
# Set a user defined custom document property.
|
|
418
406
|
#
|
|
419
407
|
def set_custom_property(name, value, type = nil)
|
|
420
|
-
|
|
408
|
+
# Valid types.
|
|
421
409
|
valid_type = {
|
|
422
410
|
'text' => 1,
|
|
423
411
|
'date' => 1,
|
|
424
412
|
'number' => 1,
|
|
425
413
|
'number_int' => 1,
|
|
426
|
-
'bool' => 1
|
|
414
|
+
'bool' => 1
|
|
427
415
|
}
|
|
428
416
|
|
|
429
|
-
if !name || (type != 'bool' && !value)
|
|
430
|
-
raise "The name and value parameters must be defined in set_custom_property()"
|
|
431
|
-
end
|
|
417
|
+
raise "The name and value parameters must be defined in set_custom_property()" if !name || (type != 'bool' && !value)
|
|
432
418
|
|
|
433
419
|
# Determine the type for strings and numbers if it hasn't been specified.
|
|
434
|
-
|
|
435
|
-
if value =~ /^\d+$/
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
420
|
+
unless ptrue?(type)
|
|
421
|
+
type = if value =~ /^\d+$/
|
|
422
|
+
'number_int'
|
|
423
|
+
elsif value =~
|
|
424
|
+
/^([+-]?)(?=[0-9]|\.[0-9])[0-9]*(\.[0-9]*)?([Ee]([+-]?[0-9]+))?$/
|
|
425
|
+
'number'
|
|
426
|
+
else
|
|
427
|
+
'text'
|
|
428
|
+
end
|
|
443
429
|
end
|
|
444
430
|
|
|
445
431
|
# Check for valid validation types.
|
|
446
|
-
|
|
447
|
-
raise "Unknown custom type '$type' in set_custom_property()"
|
|
448
|
-
end
|
|
432
|
+
raise "Unknown custom type '$type' in set_custom_property()" unless valid_type[type]
|
|
449
433
|
|
|
450
434
|
# Check for strings longer than Excel's limit of 255 chars.
|
|
451
|
-
if type == 'text' && value.length > 255
|
|
452
|
-
raise "Length of text custom value '$value' exceeds Excel's limit of 255 in set_custom_property()"
|
|
453
|
-
end
|
|
435
|
+
raise "Length of text custom value '$value' exceeds Excel's limit of 255 in set_custom_property()" if type == 'text' && value.length > 255
|
|
454
436
|
|
|
455
437
|
if type == 'bool'
|
|
456
438
|
value = value ? 1 : 0
|
|
@@ -459,7 +441,6 @@ module Writexlsx
|
|
|
459
441
|
@custom_properties << [name, value, type]
|
|
460
442
|
end
|
|
461
443
|
|
|
462
|
-
|
|
463
444
|
#
|
|
464
445
|
# The add_vba_project method can be used to add macros or functions to an
|
|
465
446
|
# WriteXLSX file using a binary VBA project file that has been extracted
|
|
@@ -473,11 +454,7 @@ module Writexlsx
|
|
|
473
454
|
# Set the VBA name for the workbook.
|
|
474
455
|
#
|
|
475
456
|
def set_vba_name(vba_codename = nil)
|
|
476
|
-
|
|
477
|
-
@vba_codename = vba_codename
|
|
478
|
-
else
|
|
479
|
-
@vba_codename = 'ThisWorkbook'
|
|
480
|
-
end
|
|
457
|
+
@vba_codename = vba_codename || 'ThisWorkbook'
|
|
481
458
|
end
|
|
482
459
|
|
|
483
460
|
#
|
|
@@ -496,7 +473,7 @@ module Writexlsx
|
|
|
496
473
|
@calc_mode = mode || 'auto'
|
|
497
474
|
|
|
498
475
|
if mode == 'manual'
|
|
499
|
-
|
|
476
|
+
@calc_on_load = false
|
|
500
477
|
elsif mode == 'auto_except_tables'
|
|
501
478
|
@calc_mode = 'autoNoTable'
|
|
502
479
|
end
|
|
@@ -509,9 +486,7 @@ module Writexlsx
|
|
|
509
486
|
# with write_url(). The format is the hyperlink style defined by Excel for the
|
|
510
487
|
# default theme.
|
|
511
488
|
#
|
|
512
|
-
|
|
513
|
-
@default_url_format
|
|
514
|
-
end
|
|
489
|
+
attr_reader :default_url_format
|
|
515
490
|
alias get_default_url_format default_url_format
|
|
516
491
|
|
|
517
492
|
#
|
|
@@ -520,15 +495,13 @@ module Writexlsx
|
|
|
520
495
|
def set_custom_color(index, red = 0, green = 0, blue = 0)
|
|
521
496
|
# Match a HTML #xxyyzz style parameter
|
|
522
497
|
if red.to_s =~ /^#(\w\w)(\w\w)(\w\w)/
|
|
523
|
-
red =
|
|
524
|
-
green =
|
|
525
|
-
blue =
|
|
498
|
+
red = ::Regexp.last_match(1).hex
|
|
499
|
+
green = ::Regexp.last_match(2).hex
|
|
500
|
+
blue = ::Regexp.last_match(3).hex
|
|
526
501
|
end
|
|
527
502
|
|
|
528
503
|
# Check that the colour index is the right range
|
|
529
|
-
if index < 8 || index > 64
|
|
530
|
-
raise "Color index #{index} outside range: 8 <= index <= 64"
|
|
531
|
-
end
|
|
504
|
+
raise "Color index #{index} outside range: 8 <= index <= 64" if index < 8 || index > 64
|
|
532
505
|
|
|
533
506
|
# Check that the colour components are in the right range
|
|
534
507
|
if (red < 0 || red > 255) ||
|
|
@@ -537,7 +510,7 @@ module Writexlsx
|
|
|
537
510
|
raise "Color component outside range: 0 <= color <= 255"
|
|
538
511
|
end
|
|
539
512
|
|
|
540
|
-
index -=8 # Adjust colour index (wingless dragonfly)
|
|
513
|
+
index -= 8 # Adjust colour index (wingless dragonfly)
|
|
541
514
|
|
|
542
515
|
# Set the RGB value
|
|
543
516
|
@palette[index] = [red, green, blue]
|
|
@@ -548,15 +521,11 @@ module Writexlsx
|
|
|
548
521
|
index + 8
|
|
549
522
|
end
|
|
550
523
|
|
|
551
|
-
|
|
552
|
-
@activesheet = worksheet
|
|
553
|
-
end
|
|
524
|
+
attr_writer :activesheet
|
|
554
525
|
|
|
555
|
-
|
|
556
|
-
@writer
|
|
557
|
-
end
|
|
526
|
+
attr_reader :writer
|
|
558
527
|
|
|
559
|
-
def date_1904?
|
|
528
|
+
def date_1904? # :nodoc:
|
|
560
529
|
@date_1904 ||= false
|
|
561
530
|
!!@date_1904
|
|
562
531
|
end
|
|
@@ -566,7 +535,7 @@ module Writexlsx
|
|
|
566
535
|
# return the string index.
|
|
567
536
|
#
|
|
568
537
|
EMPTY_HASH = {}.freeze
|
|
569
|
-
def shared_string_index(str)
|
|
538
|
+
def shared_string_index(str) # :nodoc:
|
|
570
539
|
@shared_strings.index(str, EMPTY_HASH)
|
|
571
540
|
end
|
|
572
541
|
|
|
@@ -591,7 +560,7 @@ module Writexlsx
|
|
|
591
560
|
@xf_formats,
|
|
592
561
|
@palette,
|
|
593
562
|
@font_count,
|
|
594
|
-
@
|
|
563
|
+
@num_formats,
|
|
595
564
|
@border_count,
|
|
596
565
|
@fill_count,
|
|
597
566
|
@custom_colors,
|
|
@@ -616,11 +585,11 @@ module Writexlsx
|
|
|
616
585
|
@worksheets.worksheets
|
|
617
586
|
end
|
|
618
587
|
|
|
619
|
-
def firstsheet
|
|
588
|
+
def firstsheet # :nodoc:
|
|
620
589
|
@firstsheet ||= 0
|
|
621
590
|
end
|
|
622
591
|
|
|
623
|
-
def activesheet
|
|
592
|
+
def activesheet # :nodoc:
|
|
624
593
|
@activesheet ||= 0
|
|
625
594
|
end
|
|
626
595
|
|
|
@@ -640,7 +609,7 @@ module Writexlsx
|
|
|
640
609
|
@fileobj
|
|
641
610
|
end
|
|
642
611
|
|
|
643
|
-
def setup_filename
|
|
612
|
+
def setup_filename # :nodoc:
|
|
644
613
|
if @file.respond_to?(:to_str) && @file != ''
|
|
645
614
|
@filename = @file
|
|
646
615
|
@fileobj = nil
|
|
@@ -652,71 +621,69 @@ module Writexlsx
|
|
|
652
621
|
end
|
|
653
622
|
end
|
|
654
623
|
|
|
655
|
-
|
|
656
|
-
@tempdir
|
|
657
|
-
end
|
|
624
|
+
attr_reader :tempdir
|
|
658
625
|
|
|
659
626
|
#
|
|
660
627
|
# Sets the colour palette to the Excel defaults.
|
|
661
628
|
#
|
|
662
|
-
def set_color_palette
|
|
629
|
+
def set_color_palette # :nodoc:
|
|
663
630
|
@palette = [
|
|
664
|
-
[
|
|
665
|
-
[
|
|
666
|
-
[
|
|
667
|
-
[
|
|
668
|
-
[
|
|
669
|
-
[
|
|
670
|
-
[
|
|
671
|
-
[
|
|
672
|
-
[
|
|
673
|
-
[
|
|
674
|
-
[
|
|
675
|
-
[
|
|
676
|
-
[
|
|
677
|
-
[
|
|
678
|
-
[
|
|
679
|
-
[
|
|
680
|
-
[
|
|
681
|
-
[
|
|
682
|
-
[
|
|
683
|
-
[
|
|
684
|
-
[
|
|
685
|
-
[
|
|
686
|
-
[
|
|
687
|
-
[
|
|
688
|
-
[
|
|
689
|
-
[
|
|
690
|
-
[
|
|
691
|
-
[
|
|
692
|
-
[
|
|
693
|
-
[
|
|
694
|
-
[
|
|
695
|
-
[
|
|
696
|
-
[
|
|
697
|
-
[
|
|
698
|
-
[
|
|
699
|
-
[
|
|
700
|
-
[
|
|
701
|
-
[
|
|
702
|
-
[
|
|
703
|
-
[
|
|
704
|
-
[
|
|
705
|
-
[
|
|
706
|
-
[
|
|
707
|
-
[
|
|
708
|
-
[
|
|
709
|
-
[
|
|
710
|
-
[
|
|
711
|
-
[
|
|
712
|
-
[
|
|
713
|
-
[
|
|
714
|
-
[
|
|
715
|
-
[
|
|
716
|
-
[
|
|
717
|
-
[
|
|
718
|
-
[
|
|
719
|
-
[
|
|
631
|
+
[0x00, 0x00, 0x00, 0x00], # 8
|
|
632
|
+
[0xff, 0xff, 0xff, 0x00], # 9
|
|
633
|
+
[0xff, 0x00, 0x00, 0x00], # 10
|
|
634
|
+
[0x00, 0xff, 0x00, 0x00], # 11
|
|
635
|
+
[0x00, 0x00, 0xff, 0x00], # 12
|
|
636
|
+
[0xff, 0xff, 0x00, 0x00], # 13
|
|
637
|
+
[0xff, 0x00, 0xff, 0x00], # 14
|
|
638
|
+
[0x00, 0xff, 0xff, 0x00], # 15
|
|
639
|
+
[0x80, 0x00, 0x00, 0x00], # 16
|
|
640
|
+
[0x00, 0x80, 0x00, 0x00], # 17
|
|
641
|
+
[0x00, 0x00, 0x80, 0x00], # 18
|
|
642
|
+
[0x80, 0x80, 0x00, 0x00], # 19
|
|
643
|
+
[0x80, 0x00, 0x80, 0x00], # 20
|
|
644
|
+
[0x00, 0x80, 0x80, 0x00], # 21
|
|
645
|
+
[0xc0, 0xc0, 0xc0, 0x00], # 22
|
|
646
|
+
[0x80, 0x80, 0x80, 0x00], # 23
|
|
647
|
+
[0x99, 0x99, 0xff, 0x00], # 24
|
|
648
|
+
[0x99, 0x33, 0x66, 0x00], # 25
|
|
649
|
+
[0xff, 0xff, 0xcc, 0x00], # 26
|
|
650
|
+
[0xcc, 0xff, 0xff, 0x00], # 27
|
|
651
|
+
[0x66, 0x00, 0x66, 0x00], # 28
|
|
652
|
+
[0xff, 0x80, 0x80, 0x00], # 29
|
|
653
|
+
[0x00, 0x66, 0xcc, 0x00], # 30
|
|
654
|
+
[0xcc, 0xcc, 0xff, 0x00], # 31
|
|
655
|
+
[0x00, 0x00, 0x80, 0x00], # 32
|
|
656
|
+
[0xff, 0x00, 0xff, 0x00], # 33
|
|
657
|
+
[0xff, 0xff, 0x00, 0x00], # 34
|
|
658
|
+
[0x00, 0xff, 0xff, 0x00], # 35
|
|
659
|
+
[0x80, 0x00, 0x80, 0x00], # 36
|
|
660
|
+
[0x80, 0x00, 0x00, 0x00], # 37
|
|
661
|
+
[0x00, 0x80, 0x80, 0x00], # 38
|
|
662
|
+
[0x00, 0x00, 0xff, 0x00], # 39
|
|
663
|
+
[0x00, 0xcc, 0xff, 0x00], # 40
|
|
664
|
+
[0xcc, 0xff, 0xff, 0x00], # 41
|
|
665
|
+
[0xcc, 0xff, 0xcc, 0x00], # 42
|
|
666
|
+
[0xff, 0xff, 0x99, 0x00], # 43
|
|
667
|
+
[0x99, 0xcc, 0xff, 0x00], # 44
|
|
668
|
+
[0xff, 0x99, 0xcc, 0x00], # 45
|
|
669
|
+
[0xcc, 0x99, 0xff, 0x00], # 46
|
|
670
|
+
[0xff, 0xcc, 0x99, 0x00], # 47
|
|
671
|
+
[0x33, 0x66, 0xff, 0x00], # 48
|
|
672
|
+
[0x33, 0xcc, 0xcc, 0x00], # 49
|
|
673
|
+
[0x99, 0xcc, 0x00, 0x00], # 50
|
|
674
|
+
[0xff, 0xcc, 0x00, 0x00], # 51
|
|
675
|
+
[0xff, 0x99, 0x00, 0x00], # 52
|
|
676
|
+
[0xff, 0x66, 0x00, 0x00], # 53
|
|
677
|
+
[0x66, 0x66, 0x99, 0x00], # 54
|
|
678
|
+
[0x96, 0x96, 0x96, 0x00], # 55
|
|
679
|
+
[0x00, 0x33, 0x66, 0x00], # 56
|
|
680
|
+
[0x33, 0x99, 0x66, 0x00], # 57
|
|
681
|
+
[0x00, 0x33, 0x00, 0x00], # 58
|
|
682
|
+
[0x33, 0x33, 0x00, 0x00], # 59
|
|
683
|
+
[0x99, 0x33, 0x00, 0x00], # 60
|
|
684
|
+
[0x99, 0x33, 0x66, 0x00], # 61
|
|
685
|
+
[0x33, 0x33, 0x99, 0x00], # 62
|
|
686
|
+
[0x33, 0x33, 0x33, 0x00] # 63
|
|
720
687
|
]
|
|
721
688
|
end
|
|
722
689
|
|
|
@@ -724,7 +691,7 @@ module Writexlsx
|
|
|
724
691
|
# Check for valid worksheet names. We check the length, if it contains any
|
|
725
692
|
# invalid characters and if the name is unique in the workbook.
|
|
726
693
|
#
|
|
727
|
-
def check_sheetname(name)
|
|
694
|
+
def check_sheetname(name) # :nodoc:
|
|
728
695
|
@worksheets.make_and_check_sheet_chart_name(:sheet, name)
|
|
729
696
|
end
|
|
730
697
|
|
|
@@ -736,60 +703,58 @@ module Writexlsx
|
|
|
736
703
|
# Convert a range formula such as Sheet1!$B$1:$B$5 into a sheet name and cell
|
|
737
704
|
# range such as ( 'Sheet1', 0, 1, 4, 1 ).
|
|
738
705
|
#
|
|
739
|
-
def get_chart_range(range)
|
|
706
|
+
def get_chart_range(range) # :nodoc:
|
|
740
707
|
# Split the range formula into sheetname and cells at the last '!'.
|
|
741
708
|
pos = range.rindex('!')
|
|
742
709
|
return nil unless pos
|
|
743
710
|
|
|
744
711
|
if pos > 0
|
|
745
712
|
sheetname = range[0, pos]
|
|
746
|
-
cells = range[pos + 1
|
|
713
|
+
cells = range[pos + 1..-1]
|
|
747
714
|
end
|
|
748
715
|
|
|
749
716
|
# Split the cell range into 2 cells or else use single cell for both.
|
|
750
717
|
if cells =~ /:/
|
|
751
|
-
cell_1, cell_2 = cells.split(
|
|
718
|
+
cell_1, cell_2 = cells.split(":")
|
|
752
719
|
else
|
|
753
|
-
cell_1
|
|
720
|
+
cell_1 = cells
|
|
721
|
+
cell_2 = cells
|
|
754
722
|
end
|
|
755
723
|
|
|
756
724
|
# Remove leading/trailing apostrophes and convert escaped quotes to single.
|
|
757
725
|
sheetname.sub!(/^'/, '')
|
|
758
726
|
sheetname.sub!(/'$/, '')
|
|
759
|
-
sheetname.gsub!(
|
|
727
|
+
sheetname.gsub!("''", "'")
|
|
760
728
|
|
|
761
729
|
row_start, col_start = xl_cell_to_rowcol(cell_1)
|
|
762
730
|
row_end, col_end = xl_cell_to_rowcol(cell_2)
|
|
763
731
|
|
|
764
732
|
# Check that we have a 1D range only.
|
|
765
733
|
return nil if row_start != row_end && col_start != col_end
|
|
766
|
-
|
|
734
|
+
|
|
735
|
+
[sheetname, row_start, col_start, row_end, col_end]
|
|
767
736
|
end
|
|
768
737
|
|
|
769
|
-
def write_workbook
|
|
770
|
-
schema
|
|
738
|
+
def write_workbook(&block) # :nodoc:
|
|
739
|
+
schema = 'http://schemas.openxmlformats.org'
|
|
771
740
|
attributes = [
|
|
772
741
|
['xmlns',
|
|
773
742
|
schema + '/spreadsheetml/2006/main'],
|
|
774
743
|
['xmlns:r',
|
|
775
744
|
schema + '/officeDocument/2006/relationships']
|
|
776
745
|
]
|
|
777
|
-
@writer.tag_elements('workbook', attributes)
|
|
778
|
-
yield
|
|
779
|
-
end
|
|
746
|
+
@writer.tag_elements('workbook', attributes, &block)
|
|
780
747
|
end
|
|
781
748
|
|
|
782
|
-
def write_file_version
|
|
749
|
+
def write_file_version # :nodoc:
|
|
783
750
|
attributes = [
|
|
784
|
-
[
|
|
751
|
+
%w[appName xl],
|
|
785
752
|
['lastEdited', 4],
|
|
786
753
|
['lowestEdited', 4],
|
|
787
754
|
['rupBuild', 4505]
|
|
788
755
|
]
|
|
789
756
|
|
|
790
|
-
if @vba_project
|
|
791
|
-
attributes << [:codeName, '{37E998C4-C9E5-D4B9-71C8-EB1FF731991C}']
|
|
792
|
-
end
|
|
757
|
+
attributes << [:codeName, '{37E998C4-C9E5-D4B9-71C8-EB1FF731991C}'] if @vba_project
|
|
793
758
|
|
|
794
759
|
@writer.empty_tag('fileVersion', attributes)
|
|
795
760
|
end
|
|
@@ -798,14 +763,14 @@ module Writexlsx
|
|
|
798
763
|
# Write the <fileSharing> element.
|
|
799
764
|
#
|
|
800
765
|
def write_file_sharing
|
|
801
|
-
return
|
|
766
|
+
return unless ptrue?(@read_only)
|
|
802
767
|
|
|
803
768
|
attributes = []
|
|
804
769
|
attributes << ['readOnlyRecommended', 1]
|
|
805
770
|
@writer.empty_tag('fileSharing', attributes)
|
|
806
771
|
end
|
|
807
772
|
|
|
808
|
-
def write_workbook_pr
|
|
773
|
+
def write_workbook_pr # :nodoc:
|
|
809
774
|
attributes = []
|
|
810
775
|
attributes << ['codeName', @vba_codename] if ptrue?(@vba_codename)
|
|
811
776
|
attributes << ['date1904', 1] if date_1904?
|
|
@@ -813,38 +778,32 @@ module Writexlsx
|
|
|
813
778
|
@writer.empty_tag('workbookPr', attributes)
|
|
814
779
|
end
|
|
815
780
|
|
|
816
|
-
def write_book_views
|
|
781
|
+
def write_book_views # :nodoc:
|
|
817
782
|
@writer.tag_elements('bookViews') { write_workbook_view }
|
|
818
783
|
end
|
|
819
784
|
|
|
820
|
-
def write_workbook_view
|
|
785
|
+
def write_workbook_view # :nodoc:
|
|
821
786
|
attributes = [
|
|
822
787
|
['xWindow', @x_window],
|
|
823
788
|
['yWindow', @y_window],
|
|
824
789
|
['windowWidth', @window_width],
|
|
825
790
|
['windowHeight', @window_height]
|
|
826
791
|
]
|
|
827
|
-
if @tab_ratio != 600
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
if @firstsheet > 0
|
|
831
|
-
attributes << ['firstSheet', @firstsheet + 1]
|
|
832
|
-
end
|
|
833
|
-
if @activesheet > 0
|
|
834
|
-
attributes << ['activeTab', @activesheet]
|
|
835
|
-
end
|
|
792
|
+
attributes << ['tabRatio', @tab_ratio] if @tab_ratio != 600
|
|
793
|
+
attributes << ['firstSheet', @firstsheet + 1] if @firstsheet > 0
|
|
794
|
+
attributes << ['activeTab', @activesheet] if @activesheet > 0
|
|
836
795
|
@writer.empty_tag('workbookView', attributes)
|
|
837
796
|
end
|
|
838
797
|
|
|
839
|
-
def write_calc_pr
|
|
840
|
-
attributes = [
|
|
798
|
+
def write_calc_pr # :nodoc:
|
|
799
|
+
attributes = [['calcId', @calc_id]]
|
|
841
800
|
|
|
842
801
|
case @calc_mode
|
|
843
802
|
when 'manual'
|
|
844
|
-
attributes << [
|
|
803
|
+
attributes << %w[calcMode manual]
|
|
845
804
|
attributes << ['calcOnSave', 0]
|
|
846
805
|
when 'autoNoTable'
|
|
847
|
-
attributes << [
|
|
806
|
+
attributes << %w[calcMode autoNoTable]
|
|
848
807
|
end
|
|
849
808
|
|
|
850
809
|
attributes << ['fullCalcOnLoad', 1] if @calc_on_load
|
|
@@ -852,11 +811,11 @@ module Writexlsx
|
|
|
852
811
|
@writer.empty_tag('calcPr', attributes)
|
|
853
812
|
end
|
|
854
813
|
|
|
855
|
-
def write_ext_lst
|
|
814
|
+
def write_ext_lst # :nodoc:
|
|
856
815
|
@writer.tag_elements('extLst') { write_ext }
|
|
857
816
|
end
|
|
858
817
|
|
|
859
|
-
def write_ext
|
|
818
|
+
def write_ext # :nodoc:
|
|
860
819
|
attributes = [
|
|
861
820
|
['xmlns:mx', "#{OFFICE_URL}mac/excel/2008/main"],
|
|
862
821
|
['uri', uri]
|
|
@@ -864,41 +823,42 @@ module Writexlsx
|
|
|
864
823
|
@writer.tag_elements('ext', attributes) { write_mx_arch_id }
|
|
865
824
|
end
|
|
866
825
|
|
|
867
|
-
def write_mx_arch_id
|
|
826
|
+
def write_mx_arch_id # :nodoc:
|
|
868
827
|
@writer.empty_tag('mx:ArchID', ['Flags', 2])
|
|
869
828
|
end
|
|
870
829
|
|
|
871
|
-
def write_defined_names
|
|
830
|
+
def write_defined_names # :nodoc:
|
|
872
831
|
return unless ptrue?(@defined_names)
|
|
832
|
+
|
|
873
833
|
@writer.tag_elements('definedNames') do
|
|
874
834
|
@defined_names.each { |defined_name| write_defined_name(defined_name) }
|
|
875
835
|
end
|
|
876
836
|
end
|
|
877
837
|
|
|
878
|
-
def write_defined_name(defined_name)
|
|
838
|
+
def write_defined_name(defined_name) # :nodoc:
|
|
879
839
|
name, id, range, hidden = defined_name
|
|
880
840
|
|
|
881
|
-
attributes = [
|
|
841
|
+
attributes = [['name', name]]
|
|
882
842
|
attributes << ['localSheetId', "#{id}"] unless id == -1
|
|
883
|
-
attributes << [
|
|
843
|
+
attributes << %w[hidden 1] if hidden
|
|
884
844
|
|
|
885
845
|
@writer.data_element('definedName', range, attributes)
|
|
886
846
|
end
|
|
887
847
|
|
|
888
|
-
def write_io(str)
|
|
848
|
+
def write_io(str) # :nodoc:
|
|
889
849
|
@writer << str
|
|
890
850
|
str
|
|
891
851
|
end
|
|
892
852
|
|
|
893
853
|
# for test
|
|
894
|
-
def defined_names
|
|
854
|
+
def defined_names # :nodoc:
|
|
895
855
|
@defined_names ||= []
|
|
896
856
|
end
|
|
897
857
|
|
|
898
858
|
#
|
|
899
859
|
# Assemble worksheets into a workbook.
|
|
900
860
|
#
|
|
901
|
-
def store_workbook
|
|
861
|
+
def store_workbook # :nodoc:
|
|
902
862
|
# Add a default worksheet if non have been added.
|
|
903
863
|
add_worksheet if @worksheets.empty?
|
|
904
864
|
|
|
@@ -909,6 +869,9 @@ module Writexlsx
|
|
|
909
869
|
@activesheet = @worksheets.visible_first.index if @activesheet == 0
|
|
910
870
|
@worksheets[@activesheet].activate
|
|
911
871
|
|
|
872
|
+
# Convert the SST strings data structure.
|
|
873
|
+
prepare_sst_string_data
|
|
874
|
+
|
|
912
875
|
# Prepare the worksheet VML elements such as comments and buttons.
|
|
913
876
|
prepare_vml_objects
|
|
914
877
|
# Set the defined names for the worksheets such as Print Titles.
|
|
@@ -954,13 +917,18 @@ module Writexlsx
|
|
|
954
917
|
# files
|
|
955
918
|
#
|
|
956
919
|
def parts
|
|
957
|
-
Dir.glob(File.join(tempdir, "**", "*"), File::FNM_DOTMATCH).select {|f| File.file?(f)}
|
|
920
|
+
Dir.glob(File.join(tempdir, "**", "*"), File::FNM_DOTMATCH).select { |f| File.file?(f) }
|
|
958
921
|
end
|
|
959
922
|
|
|
923
|
+
#
|
|
924
|
+
# prepare_sst_string_data
|
|
925
|
+
#
|
|
926
|
+
def prepare_sst_string_data; end
|
|
927
|
+
|
|
960
928
|
#
|
|
961
929
|
# Prepare all of the format properties prior to passing them to Styles.rb.
|
|
962
930
|
#
|
|
963
|
-
def prepare_format_properties
|
|
931
|
+
def prepare_format_properties # :nodoc:
|
|
964
932
|
# Separate format objects into XF and DXF formats.
|
|
965
933
|
prepare_formats
|
|
966
934
|
|
|
@@ -981,7 +949,7 @@ module Writexlsx
|
|
|
981
949
|
# Iterate through the XF Format objects and separate them into XF and DXF
|
|
982
950
|
# formats.
|
|
983
951
|
#
|
|
984
|
-
def prepare_formats
|
|
952
|
+
def prepare_formats # :nodoc:
|
|
985
953
|
@formats.formats.each do |format|
|
|
986
954
|
xf_index = format.xf_index
|
|
987
955
|
dxf_index = format.dxf_index
|
|
@@ -995,7 +963,7 @@ module Writexlsx
|
|
|
995
963
|
# Iterate through the XF Format objects and give them an index to non-default
|
|
996
964
|
# font elements.
|
|
997
965
|
#
|
|
998
|
-
def prepare_fonts
|
|
966
|
+
def prepare_fonts # :nodoc:
|
|
999
967
|
fonts = {}
|
|
1000
968
|
|
|
1001
969
|
@xf_formats.each { |format| format.set_font_info(fonts) }
|
|
@@ -1006,9 +974,7 @@ module Writexlsx
|
|
|
1006
974
|
@dxf_formats.each do |format|
|
|
1007
975
|
# The only font properties that can change for a DXF format are: color,
|
|
1008
976
|
# bold, italic, underline and strikethrough.
|
|
1009
|
-
if format.color? || format.bold? || format.italic? || format.underline? || format.strikeout?
|
|
1010
|
-
format.has_dxf_font(true)
|
|
1011
|
-
end
|
|
977
|
+
format.has_dxf_font(true) if format.color? || format.bold? || format.italic? || format.underline? || format.strikeout?
|
|
1012
978
|
end
|
|
1013
979
|
end
|
|
1014
980
|
|
|
@@ -1018,10 +984,10 @@ module Writexlsx
|
|
|
1018
984
|
#
|
|
1019
985
|
# User defined records start from index 0xA4.
|
|
1020
986
|
#
|
|
1021
|
-
def prepare_num_formats
|
|
1022
|
-
num_formats
|
|
1023
|
-
|
|
1024
|
-
|
|
987
|
+
def prepare_num_formats # :nodoc:
|
|
988
|
+
num_formats = []
|
|
989
|
+
unique_num_formats = {}
|
|
990
|
+
index = 164
|
|
1025
991
|
|
|
1026
992
|
(@xf_formats + @dxf_formats).each do |format|
|
|
1027
993
|
num_format = format.num_format
|
|
@@ -1032,9 +998,7 @@ module Writexlsx
|
|
|
1032
998
|
#
|
|
1033
999
|
if num_format.to_s =~ /^\d+$/ && num_format.to_s !~ /^0+\d/
|
|
1034
1000
|
# Number format '0' is indexed as 1 in Excel.
|
|
1035
|
-
if num_format == 0
|
|
1036
|
-
num_format = 1
|
|
1037
|
-
end
|
|
1001
|
+
num_format = 1 if num_format == 0
|
|
1038
1002
|
# Index to a built-in number format.
|
|
1039
1003
|
format.num_format_index = num_format
|
|
1040
1004
|
next
|
|
@@ -1044,28 +1008,29 @@ module Writexlsx
|
|
|
1044
1008
|
next
|
|
1045
1009
|
end
|
|
1046
1010
|
|
|
1047
|
-
if
|
|
1011
|
+
if unique_num_formats[num_format]
|
|
1048
1012
|
# Number format has already been used.
|
|
1049
|
-
format.num_format_index =
|
|
1013
|
+
format.num_format_index = unique_num_formats[num_format]
|
|
1050
1014
|
else
|
|
1051
1015
|
# Add a new number format.
|
|
1052
|
-
|
|
1016
|
+
unique_num_formats[num_format] = index
|
|
1053
1017
|
format.num_format_index = index
|
|
1054
1018
|
index += 1
|
|
1055
1019
|
|
|
1056
|
-
# Only increase
|
|
1057
|
-
|
|
1020
|
+
# Only store/increase number format count for XF formats
|
|
1021
|
+
# (not for DXF formats).
|
|
1022
|
+
num_formats << num_format if ptrue?(format.xf_index)
|
|
1058
1023
|
end
|
|
1059
1024
|
end
|
|
1060
1025
|
|
|
1061
|
-
@
|
|
1026
|
+
@num_formats = num_formats
|
|
1062
1027
|
end
|
|
1063
1028
|
|
|
1064
1029
|
#
|
|
1065
1030
|
# Iterate through the XF Format objects and give them an index to non-default
|
|
1066
1031
|
# border elements.
|
|
1067
1032
|
#
|
|
1068
|
-
def prepare_borders
|
|
1033
|
+
def prepare_borders # :nodoc:
|
|
1069
1034
|
borders = {}
|
|
1070
1035
|
|
|
1071
1036
|
@xf_formats.each { |format| format.set_border_info(borders) }
|
|
@@ -1086,7 +1051,7 @@ module Writexlsx
|
|
|
1086
1051
|
# The user defined fill properties start from 2 since there are 2 default
|
|
1087
1052
|
# fills: patternType="none" and patternType="gray125".
|
|
1088
1053
|
#
|
|
1089
|
-
def prepare_fills
|
|
1054
|
+
def prepare_fills # :nodoc:
|
|
1090
1055
|
fills = {}
|
|
1091
1056
|
index = 2 # Start from 2. See above.
|
|
1092
1057
|
|
|
@@ -1096,11 +1061,11 @@ module Writexlsx
|
|
|
1096
1061
|
|
|
1097
1062
|
# Store the DXF colors separately since them may be reversed below.
|
|
1098
1063
|
@dxf_formats.each do |format|
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1064
|
+
next unless format.pattern != 0 || format.bg_color != 0 || format.fg_color != 0
|
|
1065
|
+
|
|
1066
|
+
format.has_dxf_fill(true)
|
|
1067
|
+
format.dxf_bg_color = format.bg_color
|
|
1068
|
+
format.dxf_fg_color = format.fg_color
|
|
1104
1069
|
end
|
|
1105
1070
|
|
|
1106
1071
|
@xf_formats.each do |format|
|
|
@@ -1154,7 +1119,7 @@ module Writexlsx
|
|
|
1154
1119
|
# any user defined names. Stores the defined names for the Workbook.xml and
|
|
1155
1120
|
# the named ranges for App.xml.
|
|
1156
1121
|
#
|
|
1157
|
-
def prepare_defined_names
|
|
1122
|
+
def prepare_defined_names # :nodoc:
|
|
1158
1123
|
@worksheets.each do |sheet|
|
|
1159
1124
|
# Check for Print Area settings.
|
|
1160
1125
|
if sheet.autofilter_area
|
|
@@ -1167,7 +1132,7 @@ module Writexlsx
|
|
|
1167
1132
|
end
|
|
1168
1133
|
|
|
1169
1134
|
# Check for Print Area settings.
|
|
1170
|
-
|
|
1135
|
+
unless sheet.print_area.empty?
|
|
1171
1136
|
@defined_names << [
|
|
1172
1137
|
'_xlnm.Print_Area',
|
|
1173
1138
|
sheet.index,
|
|
@@ -1176,26 +1141,26 @@ module Writexlsx
|
|
|
1176
1141
|
end
|
|
1177
1142
|
|
|
1178
1143
|
# Check for repeat rows/cols. aka, Print Titles.
|
|
1179
|
-
|
|
1180
|
-
if !sheet.print_repeat_cols.empty? && !sheet.print_repeat_rows.empty?
|
|
1181
|
-
range = sheet.print_repeat_cols + ',' + sheet.print_repeat_rows
|
|
1182
|
-
else
|
|
1183
|
-
range = sheet.print_repeat_cols + sheet.print_repeat_rows
|
|
1184
|
-
end
|
|
1144
|
+
next unless !sheet.print_repeat_cols.empty? || !sheet.print_repeat_rows.empty?
|
|
1185
1145
|
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1146
|
+
range = if !sheet.print_repeat_cols.empty? && !sheet.print_repeat_rows.empty?
|
|
1147
|
+
sheet.print_repeat_cols + ',' + sheet.print_repeat_rows
|
|
1148
|
+
else
|
|
1149
|
+
sheet.print_repeat_cols + sheet.print_repeat_rows
|
|
1150
|
+
end
|
|
1151
|
+
|
|
1152
|
+
# Store the defined names.
|
|
1153
|
+
@defined_names << ['_xlnm.Print_Titles', sheet.index, range]
|
|
1189
1154
|
end
|
|
1190
1155
|
|
|
1191
|
-
@defined_names
|
|
1156
|
+
@defined_names = sort_defined_names(@defined_names)
|
|
1192
1157
|
@named_ranges = extract_named_ranges(@defined_names)
|
|
1193
1158
|
end
|
|
1194
1159
|
|
|
1195
1160
|
#
|
|
1196
1161
|
# Iterate through the worksheets and set up the VML objects.
|
|
1197
1162
|
#
|
|
1198
|
-
def prepare_vml_objects
|
|
1163
|
+
def prepare_vml_objects # :nodoc:
|
|
1199
1164
|
comment_id = 0
|
|
1200
1165
|
vml_drawing_id = 0
|
|
1201
1166
|
vml_data_id = 1
|
|
@@ -1206,6 +1171,7 @@ module Writexlsx
|
|
|
1206
1171
|
|
|
1207
1172
|
@worksheets.each do |sheet|
|
|
1208
1173
|
next if !sheet.has_vml? && !sheet.has_header_vml?
|
|
1174
|
+
|
|
1209
1175
|
if sheet.has_vml?
|
|
1210
1176
|
if sheet.has_comments?
|
|
1211
1177
|
comment_files += 1
|
|
@@ -1220,8 +1186,8 @@ module Writexlsx
|
|
|
1220
1186
|
)
|
|
1221
1187
|
|
|
1222
1188
|
# Each VML file should start with a shape id incremented by 1024.
|
|
1223
|
-
vml_data_id
|
|
1224
|
-
vml_shape_id += 1024 * (
|
|
1189
|
+
vml_data_id += 1 * (1 + sheet.num_comments_block)
|
|
1190
|
+
vml_shape_id += 1024 * (1 + sheet.num_comments_block)
|
|
1225
1191
|
end
|
|
1226
1192
|
|
|
1227
1193
|
if sheet.has_header_vml?
|
|
@@ -1234,17 +1200,13 @@ module Writexlsx
|
|
|
1234
1200
|
# has a vbaProject binary.
|
|
1235
1201
|
unless sheet.buttons_data.empty?
|
|
1236
1202
|
has_button = true
|
|
1237
|
-
if @vba_project && !sheet.vba_codename
|
|
1238
|
-
sheet.set_vba_name
|
|
1239
|
-
end
|
|
1203
|
+
sheet.set_vba_name if @vba_project && !sheet.vba_codename
|
|
1240
1204
|
end
|
|
1241
1205
|
end
|
|
1242
1206
|
|
|
1243
1207
|
# Set the workbook vba_codename if one of the sheets has a button and
|
|
1244
1208
|
# the workbook has a vbaProject binary.
|
|
1245
|
-
if has_button && @vba_project && !@vba_codename
|
|
1246
|
-
set_vba_name
|
|
1247
|
-
end
|
|
1209
|
+
set_vba_name if has_button && @vba_project && !@vba_codename
|
|
1248
1210
|
end
|
|
1249
1211
|
|
|
1250
1212
|
#
|
|
@@ -1275,7 +1237,7 @@ module Writexlsx
|
|
|
1275
1237
|
# Add "cached" data to charts to provide the numCache and strCache data for
|
|
1276
1238
|
# series and title/axis ranges.
|
|
1277
1239
|
#
|
|
1278
|
-
def add_chart_data
|
|
1240
|
+
def add_chart_data # :nodoc:
|
|
1279
1241
|
worksheets = {}
|
|
1280
1242
|
seen_ranges = {}
|
|
1281
1243
|
|
|
@@ -1283,8 +1245,8 @@ module Writexlsx
|
|
|
1283
1245
|
@worksheets.each { |worksheet| worksheets[worksheet.name] = worksheet }
|
|
1284
1246
|
|
|
1285
1247
|
# Build an array of the worksheet charts including any combined charts.
|
|
1286
|
-
@charts.collect { |chart| [chart, chart.combined] }.flatten.compact
|
|
1287
|
-
|
|
1248
|
+
@charts.collect { |chart| [chart, chart.combined] }.flatten.compact
|
|
1249
|
+
.each do |chart|
|
|
1288
1250
|
chart.formula_ids.each do |range, id|
|
|
1289
1251
|
# Skip if the series has user defined data.
|
|
1290
1252
|
if chart.formula_data[id]
|
|
@@ -1312,9 +1274,7 @@ module Writexlsx
|
|
|
1312
1274
|
|
|
1313
1275
|
# Raise if the name is unknown since it indicates a user error in
|
|
1314
1276
|
# a chart series formula.
|
|
1315
|
-
unless worksheets[sheetname]
|
|
1316
|
-
raise "Unknown worksheet reference '#{sheetname} in range '#{range}' passed to add_series()\n"
|
|
1317
|
-
end
|
|
1277
|
+
raise "Unknown worksheet reference '#{sheetname} in range '#{range}' passed to add_series()\n" unless worksheets[sheetname]
|
|
1318
1278
|
|
|
1319
1279
|
# Add the data to the chart.
|
|
1320
1280
|
# And store range data locally to avoid lookup if seen agein.
|
|
@@ -1330,11 +1290,11 @@ module Writexlsx
|
|
|
1330
1290
|
|
|
1331
1291
|
# Convert shared string indexes to strings.
|
|
1332
1292
|
data.collect do |token|
|
|
1333
|
-
if token.
|
|
1293
|
+
if token.is_a?(Hash)
|
|
1334
1294
|
string = @shared_strings.string(token[:sst_id])
|
|
1335
1295
|
|
|
1336
1296
|
# Ignore rich strings for now. Deparse later if necessary.
|
|
1337
|
-
if string =~
|
|
1297
|
+
if string =~ /^<r>/ && string =~ %r{</r>$}
|
|
1338
1298
|
''
|
|
1339
1299
|
else
|
|
1340
1300
|
string
|
|
@@ -1351,7 +1311,7 @@ module Writexlsx
|
|
|
1351
1311
|
# issues in the the Spreadsheet::WriteExcel binary version. Also makes
|
|
1352
1312
|
# comparison testing easier.
|
|
1353
1313
|
#
|
|
1354
|
-
def sort_defined_names(names)
|
|
1314
|
+
def sort_defined_names(names) # :nodoc:
|
|
1355
1315
|
names.sort do |a, b|
|
|
1356
1316
|
name_a = normalise_defined_name(a[0])
|
|
1357
1317
|
name_b = normalise_defined_name(b[0])
|
|
@@ -1362,26 +1322,24 @@ module Writexlsx
|
|
|
1362
1322
|
1
|
|
1363
1323
|
elsif name_a < name_b
|
|
1364
1324
|
-1
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
-1
|
|
1371
|
-
end
|
|
1325
|
+
elsif sheet_a >= sheet_b # name_a == name_b
|
|
1326
|
+
# Secondary sort based on the sheet name.
|
|
1327
|
+
1
|
|
1328
|
+
else
|
|
1329
|
+
-1
|
|
1372
1330
|
end
|
|
1373
1331
|
end
|
|
1374
1332
|
end
|
|
1375
1333
|
|
|
1376
1334
|
# Used in the above sort routine to normalise the defined names. Removes any
|
|
1377
1335
|
# leading '_xmln.' from internal names and lowercases the strings.
|
|
1378
|
-
def normalise_defined_name(name)
|
|
1336
|
+
def normalise_defined_name(name) # :nodoc:
|
|
1379
1337
|
name.sub(/^_xlnm./, '').downcase
|
|
1380
1338
|
end
|
|
1381
1339
|
|
|
1382
1340
|
# Used in the above sort routine to normalise the worksheet names for the
|
|
1383
1341
|
# secondary sort. Removes leading quote and lowercases the strings.
|
|
1384
|
-
def normalise_sheet_name(name)
|
|
1342
|
+
def normalise_sheet_name(name) # :nodoc:
|
|
1385
1343
|
name.sub(/^'/, '').downcase
|
|
1386
1344
|
end
|
|
1387
1345
|
|
|
@@ -1389,7 +1347,7 @@ module Writexlsx
|
|
|
1389
1347
|
# Extract the named ranges from the sorted list of defined names. These are
|
|
1390
1348
|
# used in the App.xml file.
|
|
1391
1349
|
#
|
|
1392
|
-
def extract_named_ranges(defined_names)
|
|
1350
|
+
def extract_named_ranges(defined_names) # :nodoc:
|
|
1393
1351
|
named_ranges = []
|
|
1394
1352
|
|
|
1395
1353
|
defined_names.each do |defined_name|
|
|
@@ -1399,19 +1357,19 @@ module Writexlsx
|
|
|
1399
1357
|
next if name == '_xlnm._FilterDatabase'
|
|
1400
1358
|
|
|
1401
1359
|
# We are only interested in defined names with ranges.
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
# Match Print_Area and Print_Titles xlnm types.
|
|
1406
|
-
if name =~ /^_xlnm\.(.*)$/
|
|
1407
|
-
xlnm_type = $1
|
|
1408
|
-
name = "#{sheet_name}!#{xlnm_type}"
|
|
1409
|
-
elsif index != -1
|
|
1410
|
-
name = "#{sheet_name}!#{name}"
|
|
1411
|
-
end
|
|
1360
|
+
next unless range =~ /^([^!]+)!/
|
|
1361
|
+
|
|
1362
|
+
sheet_name = ::Regexp.last_match(1)
|
|
1412
1363
|
|
|
1413
|
-
|
|
1364
|
+
# Match Print_Area and Print_Titles xlnm types.
|
|
1365
|
+
if name =~ /^_xlnm\.(.*)$/
|
|
1366
|
+
xlnm_type = ::Regexp.last_match(1)
|
|
1367
|
+
name = "#{sheet_name}!#{xlnm_type}"
|
|
1368
|
+
elsif index != -1
|
|
1369
|
+
name = "#{sheet_name}!#{name}"
|
|
1414
1370
|
end
|
|
1371
|
+
|
|
1372
|
+
named_ranges << name
|
|
1415
1373
|
end
|
|
1416
1374
|
|
|
1417
1375
|
named_ranges
|
|
@@ -1420,7 +1378,7 @@ module Writexlsx
|
|
|
1420
1378
|
#
|
|
1421
1379
|
# Iterate through the worksheets and set up any chart or image drawings.
|
|
1422
1380
|
#
|
|
1423
|
-
def prepare_drawings
|
|
1381
|
+
def prepare_drawings # :nodoc:
|
|
1424
1382
|
chart_ref_id = 0
|
|
1425
1383
|
image_ref_id = 0
|
|
1426
1384
|
drawing_id = 0
|
|
@@ -1481,13 +1439,13 @@ module Writexlsx
|
|
|
1481
1439
|
end
|
|
1482
1440
|
|
|
1483
1441
|
# Prepare the worksheet charts.
|
|
1484
|
-
sheet.charts.each_with_index do |
|
|
1442
|
+
sheet.charts.each_with_index do |_chart, index|
|
|
1485
1443
|
chart_ref_id += 1
|
|
1486
1444
|
sheet.prepare_chart(index, chart_ref_id, drawing_id)
|
|
1487
1445
|
end
|
|
1488
1446
|
|
|
1489
1447
|
# Prepare the worksheet shapes.
|
|
1490
|
-
sheet.shapes.each_with_index do |
|
|
1448
|
+
sheet.shapes.each_with_index do |_shape, index|
|
|
1491
1449
|
sheet.prepare_shape(index, drawing_id)
|
|
1492
1450
|
end
|
|
1493
1451
|
|
|
@@ -1543,8 +1501,8 @@ module Writexlsx
|
|
|
1543
1501
|
|
|
1544
1502
|
# Sort the workbook charts references into the order that the were
|
|
1545
1503
|
# written from the worksheets above.
|
|
1546
|
-
@charts = @charts.select { |chart| chart.id != -1 }
|
|
1547
|
-
|
|
1504
|
+
@charts = @charts.select { |chart| chart.id != -1 }
|
|
1505
|
+
.sort_by { |chart| chart.id }
|
|
1548
1506
|
|
|
1549
1507
|
@drawing_count = drawing_id
|
|
1550
1508
|
end
|
|
@@ -1562,19 +1520,19 @@ module Writexlsx
|
|
|
1562
1520
|
# Open the image file and import the data.
|
|
1563
1521
|
data = File.binread(filename)
|
|
1564
1522
|
md5 = Digest::MD5.hexdigest(data)
|
|
1565
|
-
if data.
|
|
1523
|
+
if data.unpack1('x A3') == 'PNG'
|
|
1566
1524
|
# Test for PNGs.
|
|
1567
1525
|
type, width, height, x_dpi, y_dpi = process_png(data)
|
|
1568
1526
|
@image_types[:png] = 1
|
|
1569
|
-
elsif data.
|
|
1527
|
+
elsif data.unpack1('n') == 0xFFD8
|
|
1570
1528
|
# Test for JPEG files.
|
|
1571
1529
|
type, width, height, x_dpi, y_dpi = process_jpg(data, filename)
|
|
1572
1530
|
@image_types[:jpeg] = 1
|
|
1573
|
-
elsif data.
|
|
1531
|
+
elsif data.unpack1('A4') == 'GIF8'
|
|
1574
1532
|
# Test for GIFs.
|
|
1575
1533
|
type, width, height, x_dpi, y_dpi = process_gif(data, filename)
|
|
1576
1534
|
@image_types[:gif] = 1
|
|
1577
|
-
elsif data.
|
|
1535
|
+
elsif data.unpack1('A2') == 'BM'
|
|
1578
1536
|
# Test for BMPs.
|
|
1579
1537
|
type, width, height = process_bmp(data, filename)
|
|
1580
1538
|
@image_types[:bmp] = 1
|
|
@@ -1607,17 +1565,17 @@ module Writexlsx
|
|
|
1607
1565
|
# IHDR element. Also read the DPI in the pHYs element.
|
|
1608
1566
|
while offset < data_length
|
|
1609
1567
|
|
|
1610
|
-
length = data[offset + 0, 4].
|
|
1611
|
-
png_type = data[offset + 4, 4].
|
|
1568
|
+
length = data[offset + 0, 4].unpack1("N")
|
|
1569
|
+
png_type = data[offset + 4, 4].unpack1("A4")
|
|
1612
1570
|
|
|
1613
1571
|
case png_type
|
|
1614
1572
|
when "IHDR"
|
|
1615
|
-
width = data[offset +
|
|
1616
|
-
height = data[offset + 12, 4].
|
|
1573
|
+
width = data[offset + 8, 4].unpack1("N")
|
|
1574
|
+
height = data[offset + 12, 4].unpack1("N")
|
|
1617
1575
|
when "pHYs"
|
|
1618
|
-
x_ppu = data[offset + 8, 4].
|
|
1619
|
-
y_ppu = data[offset + 12, 4].
|
|
1620
|
-
units = data[offset + 16, 1].
|
|
1576
|
+
x_ppu = data[offset + 8, 4].unpack1("N")
|
|
1577
|
+
y_ppu = data[offset + 12, 4].unpack1("N")
|
|
1578
|
+
units = data[offset + 16, 1].unpack1("C")
|
|
1621
1579
|
|
|
1622
1580
|
if units == 1
|
|
1623
1581
|
x_dpi = x_ppu * 0.0254
|
|
@@ -1644,22 +1602,22 @@ module Writexlsx
|
|
|
1644
1602
|
|
|
1645
1603
|
# Search through the image data to read the JPEG markers.
|
|
1646
1604
|
while offset < data_length
|
|
1647
|
-
marker = data[offset+0, 2].
|
|
1648
|
-
length = data[offset+2, 2].
|
|
1605
|
+
marker = data[offset + 0, 2].unpack1("n")
|
|
1606
|
+
length = data[offset + 2, 2].unpack1("n")
|
|
1649
1607
|
|
|
1650
1608
|
# Read the height and width in the 0xFFCn elements
|
|
1651
1609
|
# (Except C4, C8 and CC which aren't SOF markers).
|
|
1652
1610
|
if (marker & 0xFFF0) == 0xFFC0 &&
|
|
1653
1611
|
marker != 0xFFC4 && marker != 0xFFCC
|
|
1654
|
-
height = data[offset+5, 2].
|
|
1655
|
-
width = data[offset+7, 2].
|
|
1612
|
+
height = data[offset + 5, 2].unpack1("n")
|
|
1613
|
+
width = data[offset + 7, 2].unpack1("n")
|
|
1656
1614
|
end
|
|
1657
1615
|
|
|
1658
1616
|
# Read the DPI in the 0xFFE0 element.
|
|
1659
1617
|
if marker == 0xFFE0
|
|
1660
|
-
units = data[offset + 11, 1].
|
|
1661
|
-
x_density = data[offset + 12, 2].
|
|
1662
|
-
y_density = data[offset + 14, 2].
|
|
1618
|
+
units = data[offset + 11, 1].unpack1("C")
|
|
1619
|
+
x_density = data[offset + 12, 2].unpack1("n")
|
|
1620
|
+
y_density = data[offset + 14, 2].unpack1("n")
|
|
1663
1621
|
|
|
1664
1622
|
if units == 1
|
|
1665
1623
|
x_dpi = x_density
|
|
@@ -1675,6 +1633,7 @@ module Writexlsx
|
|
|
1675
1633
|
end
|
|
1676
1634
|
|
|
1677
1635
|
raise "#{filename}: no size data found in jpeg image.\n" unless height
|
|
1636
|
+
|
|
1678
1637
|
[type, width, height, x_dpi, y_dpi]
|
|
1679
1638
|
end
|
|
1680
1639
|
|
|
@@ -1686,18 +1645,16 @@ module Writexlsx
|
|
|
1686
1645
|
x_dpi = 96
|
|
1687
1646
|
y_dpi = 96
|
|
1688
1647
|
|
|
1689
|
-
width = data[6, 2].
|
|
1690
|
-
height = data[8, 2].
|
|
1648
|
+
width = data[6, 2].unpack1("v")
|
|
1649
|
+
height = data[8, 2].unpack1("v")
|
|
1691
1650
|
|
|
1692
|
-
if height.nil?
|
|
1693
|
-
raise "#{filename}: no size data found in gif image.\n"
|
|
1694
|
-
end
|
|
1651
|
+
raise "#{filename}: no size data found in gif image.\n" if height.nil?
|
|
1695
1652
|
|
|
1696
1653
|
[type, width, height, x_dpi, y_dpi]
|
|
1697
1654
|
end
|
|
1698
1655
|
|
|
1699
1656
|
# Extract width and height information from a BMP file.
|
|
1700
|
-
def process_bmp(data, filename)
|
|
1657
|
+
def process_bmp(data, filename) # :nodoc:
|
|
1701
1658
|
type = 'bmp'
|
|
1702
1659
|
|
|
1703
1660
|
# Check that the file is big enough to be a bitmap.
|
|
@@ -1714,8 +1671,9 @@ module Writexlsx
|
|
|
1714
1671
|
raise "#{filename}: only 1 plane supported in bitmap image." unless planes == 1
|
|
1715
1672
|
|
|
1716
1673
|
# Read the bitmap compression. Verify compression.
|
|
1717
|
-
compression = data.
|
|
1674
|
+
compression = data.unpack1("x30 V")
|
|
1718
1675
|
raise "#{filename}: compression not supported in bitmap image." unless compression == 0
|
|
1676
|
+
|
|
1719
1677
|
[type, width, height]
|
|
1720
1678
|
end
|
|
1721
1679
|
end
|