write_xlsx 0.0.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.
- data/.document +5 -0
- data/.gitattributes +1 -0
- data/Gemfile +12 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +82 -0
- data/Rakefile +78 -0
- data/VERSION +1 -0
- data/examples/a_simple.rb +45 -0
- data/examples/array_formula.rb +33 -0
- data/examples/autofilter.rb +235 -0
- data/examples/chart_area.rb +59 -0
- data/examples/chart_bar.rb +59 -0
- data/examples/chart_column.rb +58 -0
- data/examples/chart_line.rb +59 -0
- data/examples/chart_pie.rb +49 -0
- data/examples/chart_scatter.rb +59 -0
- data/examples/chart_stock.rb +65 -0
- data/examples/colors.rb +130 -0
- data/examples/comments1.rb +12 -0
- data/examples/comments2.rb +335 -0
- data/examples/conditional_format.rb +67 -0
- data/examples/data_validate.rb +279 -0
- data/examples/defined_name.rb +28 -0
- data/examples/demo.rb +104 -0
- data/examples/diag_border.rb +26 -0
- data/examples/headers.rb +119 -0
- data/examples/hide_sheet.rb +30 -0
- data/examples/hyperlink1.rb +58 -0
- data/examples/indent.rb +28 -0
- data/examples/merge1.rb +38 -0
- data/examples/merge2.rb +48 -0
- data/examples/merge3.rb +43 -0
- data/examples/merge4.rb +82 -0
- data/examples/merge5.rb +70 -0
- data/examples/merge6.rb +48 -0
- data/examples/outline.rb +252 -0
- data/examples/properties.rb +33 -0
- data/examples/protection.rb +34 -0
- data/examples/rich_strings.rb +42 -0
- data/examples/right_to_left.rb +24 -0
- data/examples/tab_colors.rb +26 -0
- data/lib/write_xlsx.rb +77 -0
- data/lib/write_xlsx/chart.rb +3027 -0
- data/lib/write_xlsx/chart/area.rb +52 -0
- data/lib/write_xlsx/chart/bar.rb +126 -0
- data/lib/write_xlsx/chart/column.rb +132 -0
- data/lib/write_xlsx/chart/line.rb +51 -0
- data/lib/write_xlsx/chart/pie.rb +210 -0
- data/lib/write_xlsx/chart/scatter.rb +252 -0
- data/lib/write_xlsx/chart/stock.rb +134 -0
- data/lib/write_xlsx/chartsheet.rb +173 -0
- data/lib/write_xlsx/colors.rb +65 -0
- data/lib/write_xlsx/compatibility.rb +71 -0
- data/lib/write_xlsx/drawing.rb +547 -0
- data/lib/write_xlsx/format.rb +683 -0
- data/lib/write_xlsx/package/app.rb +218 -0
- data/lib/write_xlsx/package/comments.rb +221 -0
- data/lib/write_xlsx/package/content_types.rb +189 -0
- data/lib/write_xlsx/package/core.rb +196 -0
- data/lib/write_xlsx/package/packager.rb +510 -0
- data/lib/write_xlsx/package/relationships.rb +98 -0
- data/lib/write_xlsx/package/shared_strings.rb +96 -0
- data/lib/write_xlsx/package/styles.rb +705 -0
- data/lib/write_xlsx/package/theme.rb +45 -0
- data/lib/write_xlsx/package/vml.rb +386 -0
- data/lib/write_xlsx/package/xml_writer_simple.rb +90 -0
- data/lib/write_xlsx/utility.rb +113 -0
- data/lib/write_xlsx/workbook.rb +1488 -0
- data/lib/write_xlsx/worksheet.rb +6578 -0
- data/lib/write_xlsx/zip_file_utils.rb +98 -0
- data/test/chart/test_add_series.rb +113 -0
- data/test/chart/test_process_names.rb +27 -0
- data/test/chart/test_write_auto.rb +15 -0
- data/test/chart/test_write_ax_id.rb +15 -0
- data/test/chart/test_write_ax_pos.rb +15 -0
- data/test/chart/test_write_chart_space.rb +15 -0
- data/test/chart/test_write_cross_ax.rb +15 -0
- data/test/chart/test_write_crosses.rb +15 -0
- data/test/chart/test_write_format_code.rb +15 -0
- data/test/chart/test_write_idx.rb +15 -0
- data/test/chart/test_write_label_align.rb +15 -0
- data/test/chart/test_write_label_offset.rb +15 -0
- data/test/chart/test_write_lang.rb +15 -0
- data/test/chart/test_write_layout.rb +15 -0
- data/test/chart/test_write_legend.rb +16 -0
- data/test/chart/test_write_legend_pos.rb +15 -0
- data/test/chart/test_write_major_gridlines.rb +15 -0
- data/test/chart/test_write_marker.rb +17 -0
- data/test/chart/test_write_marker_size.rb +15 -0
- data/test/chart/test_write_marker_value.rb +16 -0
- data/test/chart/test_write_num_cache.rb +16 -0
- data/test/chart/test_write_num_fmt.rb +16 -0
- data/test/chart/test_write_number_format.rb +15 -0
- data/test/chart/test_write_order.rb +15 -0
- data/test/chart/test_write_orientation.rb +15 -0
- data/test/chart/test_write_page_margins.rb +15 -0
- data/test/chart/test_write_page_setup.rb +15 -0
- data/test/chart/test_write_plot_vis_only.rb +15 -0
- data/test/chart/test_write_pt.rb +16 -0
- data/test/chart/test_write_pt_count.rb +16 -0
- data/test/chart/test_write_series_formula.rb +16 -0
- data/test/chart/test_write_style.rb +41 -0
- data/test/chart/test_write_symbol.rb +16 -0
- data/test/chart/test_write_tick_lbl_pos.rb +16 -0
- data/test/chart/test_write_v.rb +16 -0
- data/test/drawing/test_drawing_chart_01.rb +50 -0
- data/test/drawing/test_drawing_image_01.rb +59 -0
- data/test/helper.rb +90 -0
- data/test/package/app/test_app01.rb +44 -0
- data/test/package/app/test_app02.rb +46 -0
- data/test/package/app/test_app03.rb +53 -0
- data/test/package/comments/test_comments01.rb +36 -0
- data/test/package/comments/test_write_text_t.rb +44 -0
- data/test/package/content_types/test_content_types.rb +35 -0
- data/test/package/content_types/test_write_default.rb +13 -0
- data/test/package/content_types/test_write_override.rb +13 -0
- data/test/package/core/test_core01.rb +28 -0
- data/test/package/core/test_core02.rb +42 -0
- data/test/package/relationships/test_relationships.rb +28 -0
- data/test/package/relationships/test_sheet_rels.rb +22 -0
- data/test/package/shared_strings/test_shared_strings01.rb +30 -0
- data/test/package/shared_strings/test_shared_strings02.rb +30 -0
- data/test/package/shared_strings/test_write_si.rb +13 -0
- data/test/package/shared_strings/test_write_sst.rb +15 -0
- data/test/package/styles/test_styles_01.rb +69 -0
- data/test/package/styles/test_styles_02.rb +104 -0
- data/test/package/styles/test_styles_03.rb +90 -0
- data/test/package/styles/test_styles_04.rb +216 -0
- data/test/package/styles/test_styles_05.rb +150 -0
- data/test/package/styles/test_styles_06.rb +104 -0
- data/test/package/styles/test_styles_07.rb +104 -0
- data/test/package/styles/test_styles_08.rb +109 -0
- data/test/package/styles/test_styles_09.rb +95 -0
- data/test/package/vml/test_vml_01.rb +42 -0
- data/test/package/vml/test_write_anchor.rb +14 -0
- data/test/package/vml/test_write_auto_fill.rb +14 -0
- data/test/package/vml/test_write_column.rb +14 -0
- data/test/package/vml/test_write_div.rb +14 -0
- data/test/package/vml/test_write_fill.rb +14 -0
- data/test/package/vml/test_write_idmap.rb +14 -0
- data/test/package/vml/test_write_move_with_cells.rb +14 -0
- data/test/package/vml/test_write_path.rb +22 -0
- data/test/package/vml/test_write_row.rb +14 -0
- data/test/package/vml/test_write_shadow.rb +14 -0
- data/test/package/vml/test_write_shapelayout.rb +14 -0
- data/test/package/vml/test_write_shapetype.rb +14 -0
- data/test/package/vml/test_write_size_with_cells.rb +14 -0
- data/test/package/vml/test_write_stroke.rb +14 -0
- data/test/package/vml/test_write_textbox.rb +14 -0
- data/test/perl_output/a_simple.xlsx +0 -0
- data/test/perl_output/array_formula.xlsx +0 -0
- data/test/perl_output/autofilter.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_line.xlsx +0 -0
- data/test/perl_output/chart_pie.xlsx +0 -0
- data/test/perl_output/chart_scatter.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/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/headers.xlsx +0 -0
- data/test/perl_output/hide_sheet.xlsx +0 -0
- data/test/perl_output/hyperlink.xlsx +0 -0
- data/test/perl_output/indent.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/outline.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/rich_strings.xlsx +0 -0
- data/test/perl_output/right_to_left.xlsx +0 -0
- data/test/perl_output/tab_colors.xlsx +0 -0
- data/test/test_delete_files.rb +37 -0
- data/test/test_example_match.rb +2281 -0
- data/test/test_xml_writer_simple.rb +63 -0
- data/test/workbook/test_get_chart_range.rb +59 -0
- data/test/workbook/test_sort_defined_names.rb +77 -0
- data/test/workbook/test_workbook_01.rb +29 -0
- data/test/workbook/test_workbook_02.rb +31 -0
- data/test/workbook/test_workbook_03.rb +31 -0
- data/test/workbook/test_workbook_new.rb +18 -0
- data/test/workbook/test_write_defined_name.rb +17 -0
- data/test/workbook/test_write_defined_names.rb +41 -0
- data/test/worksheet/test_calculate_spans.rb +58 -0
- data/test/worksheet/test_convert_date_time_01.rb +439 -0
- data/test/worksheet/test_convert_date_time_02.rb +478 -0
- data/test/worksheet/test_convert_date_time_03.rb +435 -0
- data/test/worksheet/test_extract_filter_tokens.rb +109 -0
- data/test/worksheet/test_parse_filter_expression.rb +143 -0
- data/test/worksheet/test_position_object.rb +50 -0
- data/test/worksheet/test_repeat_formula.rb +55 -0
- data/test/worksheet/test_worksheet_01.rb +32 -0
- data/test/worksheet/test_worksheet_02.rb +38 -0
- data/test/worksheet/test_worksheet_03.rb +44 -0
- data/test/worksheet/test_worksheet_04.rb +45 -0
- data/test/worksheet/test_write_array_formula_01.rb +99 -0
- data/test/worksheet/test_write_autofilter.rb +260 -0
- data/test/worksheet/test_write_brk.rb +18 -0
- data/test/worksheet/test_write_cell.rb +49 -0
- data/test/worksheet/test_write_cell_value.rb +33 -0
- data/test/worksheet/test_write_col_breaks.rb +27 -0
- data/test/worksheet/test_write_col_info.rb +95 -0
- data/test/worksheet/test_write_conditional_formatting.rb +72 -0
- data/test/worksheet/test_write_custom_filter.rb +18 -0
- data/test/worksheet/test_write_custom_filters.rb +25 -0
- data/test/worksheet/test_write_data_validation_01.rb +113 -0
- data/test/worksheet/test_write_data_validation_02.rb +528 -0
- data/test/worksheet/test_write_dimension.rb +94 -0
- data/test/worksheet/test_write_ext.rb +18 -0
- data/test/worksheet/test_write_ext_lst.rb +18 -0
- data/test/worksheet/test_write_filter.rb +18 -0
- data/test/worksheet/test_write_filter_column.rb +18 -0
- data/test/worksheet/test_write_filters.rb +32 -0
- data/test/worksheet/test_write_header_footer.rb +53 -0
- data/test/worksheet/test_write_hyperlink.rb +39 -0
- data/test/worksheet/test_write_hyperlinks.rb +27 -0
- data/test/worksheet/test_write_legacy_drawing.rb +19 -0
- data/test/worksheet/test_write_merge_cell.rb +18 -0
- data/test/worksheet/test_write_merge_cells.rb +192 -0
- data/test/worksheet/test_write_methods.rb +353 -0
- data/test/worksheet/test_write_mx_plv.rb +19 -0
- data/test/worksheet/test_write_page_margins.rb +98 -0
- data/test/worksheet/test_write_page_set_up_pr.rb +19 -0
- data/test/worksheet/test_write_page_setup.rb +54 -0
- data/test/worksheet/test_write_pane.rb +123 -0
- data/test/worksheet/test_write_phonetic_pr.rb +19 -0
- data/test/worksheet/test_write_print_options.rb +77 -0
- data/test/worksheet/test_write_row_breaks.rb +27 -0
- data/test/worksheet/test_write_row_element.rb +69 -0
- data/test/worksheet/test_write_selection.rb +18 -0
- data/test/worksheet/test_write_sheet_calc_pr.rb +18 -0
- data/test/worksheet/test_write_sheet_data.rb +18 -0
- data/test/worksheet/test_write_sheet_format_pr.rb +18 -0
- data/test/worksheet/test_write_sheet_pr.rb +36 -0
- data/test/worksheet/test_write_sheet_protection.rb +174 -0
- data/test/worksheet/test_write_sheet_view.rb +62 -0
- data/test/worksheet/test_write_sheet_view1.rb +64 -0
- data/test/worksheet/test_write_sheet_view2.rb +56 -0
- data/test/worksheet/test_write_sheet_view3.rb +83 -0
- data/test/worksheet/test_write_sheet_view4.rb +83 -0
- data/test/worksheet/test_write_sheet_view5.rb +74 -0
- data/test/worksheet/test_write_sheet_view6.rb +51 -0
- data/test/worksheet/test_write_sheet_view7.rb +71 -0
- data/test/worksheet/test_write_sheet_view8.rb +51 -0
- data/test/worksheet/test_write_sheet_view9.rb +51 -0
- data/test/worksheet/test_write_tab_color.rb +23 -0
- data/test/worksheet/test_write_worksheet.rb +19 -0
- data/write_xlsx.gemspec +308 -0
- metadata +363 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx/package/xml_writer_simple'
|
|
4
|
+
|
|
5
|
+
class TestXMLWriterSimple < Test::Unit::TestCase
|
|
6
|
+
def setup
|
|
7
|
+
@obj = Writexlsx::Package::XMLWriterSimple.new
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def test_xml_decl
|
|
11
|
+
assert_equal(
|
|
12
|
+
%Q!<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n!,
|
|
13
|
+
@obj.xml_decl
|
|
14
|
+
)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_empty_tag
|
|
18
|
+
assert_equal('<foo />', @obj.empty_tag('foo'))
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_empty_tag_with_xml_decl
|
|
22
|
+
expected = <<EOS
|
|
23
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
24
|
+
<foo />
|
|
25
|
+
EOS
|
|
26
|
+
assert_equal(expected, @obj.xml_decl << @obj.empty_tag('foo') << "\n")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_start_end_tag
|
|
30
|
+
assert_equal("<foo></foo>", @obj.start_tag('foo') << @obj.end_tag('foo'))
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test_attribute
|
|
34
|
+
assert_equal(
|
|
35
|
+
"<foo x=\"1>2\" />", @obj.empty_tag("foo", ['x', '1>2'])
|
|
36
|
+
)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_character_data
|
|
40
|
+
assert_equal(
|
|
41
|
+
"<foo><tag>&amp;</tag></foo>",
|
|
42
|
+
@obj.start_tag('foo') << @obj.characters("<tag>&</tag>") << @obj.end_tag('foo')
|
|
43
|
+
)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_data_element_with_empty_attr
|
|
47
|
+
assert_equal(
|
|
48
|
+
"<foo>data</foo>",
|
|
49
|
+
@obj.data_element('foo', 'data')
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_data_element
|
|
54
|
+
attributes = [
|
|
55
|
+
'name', '_xlnm.Print_Titles',
|
|
56
|
+
'localSheetId', 0
|
|
57
|
+
]
|
|
58
|
+
assert_equal(
|
|
59
|
+
"<definedName name=\"_xlnm.Print_Titles\" localSheetId=\"0\">Sheet1!$1:$1</definedName>",
|
|
60
|
+
@obj.data_element('definedName', 'Sheet1!$1:$1', attributes)
|
|
61
|
+
)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestGetChartRange < Test::Unit::TestCase
|
|
7
|
+
def setup
|
|
8
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_get_chart_range_simple_formula
|
|
12
|
+
formula = 'Sheet1!$B$1:$B$5'
|
|
13
|
+
result = @workbook.__send__('get_chart_range', formula)
|
|
14
|
+
expected = ['Sheet1', 0, 1, 4, 1]
|
|
15
|
+
assert_equal(expected, result)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_get_chart_range_sheetname_with_space
|
|
19
|
+
formula = "'Sheet 1'!$B$1:$B$5"
|
|
20
|
+
result = @workbook.__send__('get_chart_range', formula)
|
|
21
|
+
expected = ['Sheet 1', 0, 1, 4, 1]
|
|
22
|
+
assert_equal(expected, result)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_get_chart_range_single_cell_range
|
|
26
|
+
formula = 'Sheet1!$B$1'
|
|
27
|
+
result = @workbook.__send__('get_chart_range', formula)
|
|
28
|
+
expected = ['Sheet1', 0, 1, 0, 1]
|
|
29
|
+
assert_equal(expected, result)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_get_chart_range_sheet_name_with_an_apostrophe
|
|
33
|
+
formula = "'Don''t'!$B$1:$B$5"
|
|
34
|
+
result = @workbook.__send__('get_chart_range', formula)
|
|
35
|
+
expected = ["Don't", 0, 1, 4, 1]
|
|
36
|
+
assert_equal(expected, result)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_get_chart_range_sheet_name_with_exclamation_mark
|
|
40
|
+
formula = "'aa!bb'!$B$1:$B$5"
|
|
41
|
+
result = @workbook.__send__('get_chart_range', formula)
|
|
42
|
+
expected = ['aa!bb', 0, 1, 4, 1]
|
|
43
|
+
assert_equal(expected, result)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def test_get_chart_range_sheet_name_with_invalid_range
|
|
47
|
+
formula = ''
|
|
48
|
+
result = @workbook.__send__('get_chart_range', formula)
|
|
49
|
+
expected = nil
|
|
50
|
+
assert_equal(expected, result)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_get_chart_range_sheet_name_with_invalid_2d_range
|
|
54
|
+
formula = 'Sheet1!$B$1:$F$5'
|
|
55
|
+
result = @workbook.__send__('get_chart_range', formula)
|
|
56
|
+
expected = nil
|
|
57
|
+
assert_equal(expected, result)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestSortDefinedNames < Test::Unit::TestCase
|
|
7
|
+
def setup
|
|
8
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_sort_defined_names
|
|
12
|
+
sorted = @workbook.__send__('sort_defined_names', unsorted)
|
|
13
|
+
assert_equal(expected, sorted)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_extract_named_ranges
|
|
17
|
+
sorted = @workbook.__send__('sort_defined_names', unsorted)
|
|
18
|
+
assert_equal(@workbook.__send__('extract_named_ranges', sorted), named_ranges)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def unsorted
|
|
22
|
+
[
|
|
23
|
+
[ "Bar", 1, %q(Sheet2!$A$1) ],
|
|
24
|
+
[ "Bar", 0, %q(Sheet1!$A$1) ],
|
|
25
|
+
[ "Abc", -1, %q(Sheet1!$A$1) ],
|
|
26
|
+
[ "Baz", -1, %q(0.98) ],
|
|
27
|
+
[ "Bar", 2, %q('Sheet 3'!$A$1) ],
|
|
28
|
+
[ "Foo", -1, %q(Sheet1!$A$1) ],
|
|
29
|
+
[ "Print_Titler", -1, %q(Sheet1!$A$1) ],
|
|
30
|
+
[ "Print_Titlet", -1, %q(Sheet1!$A$1) ],
|
|
31
|
+
[ "_Fog", -1, %q(Sheet1!$A$1) ],
|
|
32
|
+
[ "_Egg", -1, %q(Sheet1!$A$1) ],
|
|
33
|
+
[ "_xlnm.Print_Titles", 0, %q(Sheet1!$1:$1) ],
|
|
34
|
+
[ "_xlnm._FilterDatabase", 0, %q(Sheet1!$G$1) ],
|
|
35
|
+
[ "aaa", 1, %q(Sheet2!$A$1) ],
|
|
36
|
+
[ "_xlnm.Print_Area", 0, %q(Sheet1!$A$1:$H$10) ],
|
|
37
|
+
[ "Car", 2, %q("Saab 900") ]
|
|
38
|
+
]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def expected
|
|
42
|
+
[
|
|
43
|
+
[ "_Egg", -1, %q(Sheet1!$A$1) ],
|
|
44
|
+
[ "_xlnm._FilterDatabase", 0, %q(Sheet1!$G$1) ],
|
|
45
|
+
[ "_Fog", -1, %q(Sheet1!$A$1) ],
|
|
46
|
+
[ "aaa", 1, %q(Sheet2!$A$1) ],
|
|
47
|
+
[ "Abc", -1, %q(Sheet1!$A$1) ],
|
|
48
|
+
[ "Bar", 2, %q('Sheet 3'!$A$1) ],
|
|
49
|
+
[ "Bar", 0, %q(Sheet1!$A$1) ],
|
|
50
|
+
[ "Bar", 1, %q(Sheet2!$A$1) ],
|
|
51
|
+
[ "Baz", -1, %q(0.98) ],
|
|
52
|
+
[ "Car", 2, %q("Saab 900") ],
|
|
53
|
+
[ "Foo", -1, %q(Sheet1!$A$1) ],
|
|
54
|
+
[ "_xlnm.Print_Area", 0, %q(Sheet1!$A$1:$H$10) ],
|
|
55
|
+
[ "Print_Titler", -1, %q(Sheet1!$A$1) ],
|
|
56
|
+
[ "_xlnm.Print_Titles", 0, %q(Sheet1!$1:$1) ],
|
|
57
|
+
[ "Print_Titlet", -1, %q(Sheet1!$A$1) ]
|
|
58
|
+
]
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def named_ranges
|
|
62
|
+
[
|
|
63
|
+
%q(_Egg),
|
|
64
|
+
%q(_Fog),
|
|
65
|
+
%q(Sheet2!aaa),
|
|
66
|
+
%q(Abc),
|
|
67
|
+
%q('Sheet 3'!Bar),
|
|
68
|
+
%q(Sheet1!Bar),
|
|
69
|
+
%q(Sheet2!Bar),
|
|
70
|
+
%q(Foo),
|
|
71
|
+
%q(Sheet1!Print_Area),
|
|
72
|
+
%q(Print_Titler),
|
|
73
|
+
%q(Sheet1!Print_Titles),
|
|
74
|
+
%q(Print_Titlet)
|
|
75
|
+
]
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx/workbook'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestWorkbook01 < Test::Unit::TestCase
|
|
7
|
+
def test_workbook_01
|
|
8
|
+
workbook = Writexlsx::Workbook.new(StringIO.new)
|
|
9
|
+
workbook.add_worksheet
|
|
10
|
+
workbook.__send__('assemble_xml_file')
|
|
11
|
+
result = got_to_array(workbook.xml_str)
|
|
12
|
+
expected = expected_to_array(<<EOS
|
|
13
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
14
|
+
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
|
|
15
|
+
<fileVersion appName="xl" lastEdited="4" lowestEdited="4" rupBuild="4505"/>
|
|
16
|
+
<workbookPr defaultThemeVersion="124226"/>
|
|
17
|
+
<bookViews>
|
|
18
|
+
<workbookView xWindow="240" yWindow="15" windowWidth="16095" windowHeight="9660"/>
|
|
19
|
+
</bookViews>
|
|
20
|
+
<sheets>
|
|
21
|
+
<sheet name="Sheet1" sheetId="1" r:id="rId1"/>
|
|
22
|
+
</sheets>
|
|
23
|
+
<calcPr calcId="124519"/>
|
|
24
|
+
</workbook>
|
|
25
|
+
EOS
|
|
26
|
+
)
|
|
27
|
+
assert_equal(expected, result)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx/workbook'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestWorkbook02 < Test::Unit::TestCase
|
|
7
|
+
def test_workbook_01
|
|
8
|
+
workbook = Writexlsx::Workbook.new(StringIO.new)
|
|
9
|
+
workbook.add_worksheet
|
|
10
|
+
workbook.add_worksheet
|
|
11
|
+
workbook.__send__('assemble_xml_file')
|
|
12
|
+
result = got_to_array(workbook.xml_str)
|
|
13
|
+
expected = expected_to_array(<<EOS
|
|
14
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
15
|
+
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
|
|
16
|
+
<fileVersion appName="xl" lastEdited="4" lowestEdited="4" rupBuild="4505"/>
|
|
17
|
+
<workbookPr defaultThemeVersion="124226"/>
|
|
18
|
+
<bookViews>
|
|
19
|
+
<workbookView xWindow="240" yWindow="15" windowWidth="16095" windowHeight="9660"/>
|
|
20
|
+
</bookViews>
|
|
21
|
+
<sheets>
|
|
22
|
+
<sheet name="Sheet1" sheetId="1" r:id="rId1"/>
|
|
23
|
+
<sheet name="Sheet2" sheetId="2" r:id="rId2"/>
|
|
24
|
+
</sheets>
|
|
25
|
+
<calcPr calcId="124519"/>
|
|
26
|
+
</workbook>
|
|
27
|
+
EOS
|
|
28
|
+
)
|
|
29
|
+
assert_equal(expected, result)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx/workbook'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestWorkbook03 < Test::Unit::TestCase
|
|
7
|
+
def test_workbook_03
|
|
8
|
+
workbook = Writexlsx::Workbook.new(StringIO.new)
|
|
9
|
+
workbook.add_worksheet('Non Default Name')
|
|
10
|
+
workbook.add_worksheet('Another Name')
|
|
11
|
+
workbook.__send__('assemble_xml_file')
|
|
12
|
+
result = got_to_array(workbook.xml_str)
|
|
13
|
+
expected = expected_to_array(<<EOS
|
|
14
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
15
|
+
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
|
|
16
|
+
<fileVersion appName="xl" lastEdited="4" lowestEdited="4" rupBuild="4505"/>
|
|
17
|
+
<workbookPr defaultThemeVersion="124226"/>
|
|
18
|
+
<bookViews>
|
|
19
|
+
<workbookView xWindow="240" yWindow="15" windowWidth="16095" windowHeight="9660"/>
|
|
20
|
+
</bookViews>
|
|
21
|
+
<sheets>
|
|
22
|
+
<sheet name="Non Default Name" sheetId="1" r:id="rId1"/>
|
|
23
|
+
<sheet name="Another Name" sheetId="2" r:id="rId2"/>
|
|
24
|
+
</sheets>
|
|
25
|
+
<calcPr calcId="124519"/>
|
|
26
|
+
</workbook>
|
|
27
|
+
EOS
|
|
28
|
+
)
|
|
29
|
+
assert_equal(expected, result)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx/workbook'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestWorkbookNew < Test::Unit::TestCase
|
|
7
|
+
def test_workbook_new_without_param_raise
|
|
8
|
+
assert_raise(ArgumentError) do
|
|
9
|
+
WriteXLSX.new()
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_workbook_new_with_null_string_raise
|
|
14
|
+
assert_raise(RuntimeError) do
|
|
15
|
+
WriteXLSX.new('')
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestWriteDefinedName < Test::Unit::TestCase
|
|
7
|
+
def setup
|
|
8
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_write_defined_name
|
|
12
|
+
@workbook.__send__('write_defined_name', ['_xlnm.Print_Titles', 0, 'Sheet1!$1:$1'])
|
|
13
|
+
result = @workbook.xml_str
|
|
14
|
+
expected = '<definedName name="_xlnm.Print_Titles" localSheetId="0">Sheet1!$1:$1</definedName>'
|
|
15
|
+
assert_equal(expected, result)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestWriteDefinedNames < Test::Unit::TestCase
|
|
7
|
+
def setup
|
|
8
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_write_defined_names_simple
|
|
12
|
+
@workbook.instance_variable_set(:@defined_names, [ [ '_xlnm.Print_Titles', 0, 'Sheet1!$1:$1' ] ])
|
|
13
|
+
@workbook.__send__('write_defined_names')
|
|
14
|
+
result = @workbook.xml_str
|
|
15
|
+
expected = '<definedNames><definedName name="_xlnm.Print_Titles" localSheetId="0">Sheet1!$1:$1</definedName></definedNames>'
|
|
16
|
+
assert_equal(expected, result)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_write_defined_names_multiple_range
|
|
20
|
+
@workbook.add_worksheet
|
|
21
|
+
@workbook.add_worksheet
|
|
22
|
+
@workbook.add_worksheet('Sheet 3')
|
|
23
|
+
|
|
24
|
+
@workbook.define_name( %q('Sheet 3'!Bar), %q(='Sheet 3'!$A$1) )
|
|
25
|
+
@workbook.define_name( %q(Abc), %q(=Sheet1!$A$1) )
|
|
26
|
+
@workbook.define_name( %q(Baz), %q(=0.98) )
|
|
27
|
+
@workbook.define_name( %q(Sheet1!Bar), %q(=Sheet1!$A$1) )
|
|
28
|
+
@workbook.define_name( %q(Sheet2!Bar), %q(=Sheet2!$A$1) )
|
|
29
|
+
@workbook.define_name( %q(Sheet2!aaa), %q(=Sheet2!$A$1) )
|
|
30
|
+
@workbook.define_name( %q('Sheet 3'!car), %q(="Saab 900") )
|
|
31
|
+
@workbook.define_name( %q(_Egg), %q(=Sheet1!$A$1) )
|
|
32
|
+
@workbook.define_name( %q(_Fog), %q(=Sheet1!$A$1) )
|
|
33
|
+
|
|
34
|
+
@workbook.__send__('prepare_defined_names')
|
|
35
|
+
@workbook.__send__('write_defined_names')
|
|
36
|
+
|
|
37
|
+
result = got_to_array(@workbook.xml_str).join('')
|
|
38
|
+
expected = %q(<definedNames><definedName name="_Egg">Sheet1!$A$1</definedName><definedName name="_Fog">Sheet1!$A$1</definedName><definedName name="aaa" localSheetId="1">Sheet2!$A$1</definedName><definedName name="Abc">Sheet1!$A$1</definedName><definedName name="Bar" localSheetId="2">'Sheet 3'!$A$1</definedName><definedName name="Bar" localSheetId="0">Sheet1!$A$1</definedName><definedName name="Bar" localSheetId="1">Sheet2!$A$1</definedName><definedName name="Baz">0.98</definedName><definedName name="car" localSheetId="2">"Saab 900"</definedName></definedNames>)
|
|
39
|
+
assert_equal(expected, result)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
#
|
|
7
|
+
# class for test_calculate_spans
|
|
8
|
+
#
|
|
9
|
+
class CalcSpansTC
|
|
10
|
+
attr_reader :row, :col, :expected
|
|
11
|
+
def initialize(row, col, expected)
|
|
12
|
+
@row = row
|
|
13
|
+
@col = col
|
|
14
|
+
@expected = expected
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class TestCalculateSpans < Test::Unit::TestCase
|
|
19
|
+
def setup
|
|
20
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
21
|
+
@worksheet = @workbook.add_worksheet('')
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_calculate_spans
|
|
25
|
+
[
|
|
26
|
+
CalcSpansTC.new( 0, 0, [ '1:16', '17:17' ]),
|
|
27
|
+
CalcSpansTC.new( 1, 0, [ '1:15', '16:17' ]),
|
|
28
|
+
CalcSpansTC.new( 2, 0, [ '1:14', '15:17' ]),
|
|
29
|
+
CalcSpansTC.new( 3, 0, [ '1:13', '14:17' ]),
|
|
30
|
+
CalcSpansTC.new( 4, 0, [ '1:12', '13:17' ]),
|
|
31
|
+
CalcSpansTC.new( 5, 0, [ '1:11', '12:17' ]),
|
|
32
|
+
CalcSpansTC.new( 6, 0, [ '1:10', '11:17' ]),
|
|
33
|
+
CalcSpansTC.new( 7, 0, [ '1:9', '10:17' ]),
|
|
34
|
+
CalcSpansTC.new( 8, 0, [ '1:8', '9:17' ]),
|
|
35
|
+
CalcSpansTC.new( 9, 0, [ '1:7', '8:17' ]),
|
|
36
|
+
CalcSpansTC.new(10, 0, [ '1:6', '7:17' ]),
|
|
37
|
+
CalcSpansTC.new(11, 0, [ '1:5', '6:17' ]),
|
|
38
|
+
CalcSpansTC.new(12, 0, [ '1:4', '5:17' ]),
|
|
39
|
+
CalcSpansTC.new(13, 0, [ '1:3', '4:17' ]),
|
|
40
|
+
CalcSpansTC.new(14, 0, [ '1:2', '3:17' ]),
|
|
41
|
+
CalcSpansTC.new(15, 0, [ '1:1', '2:17' ]),
|
|
42
|
+
CalcSpansTC.new(16, 0, [ nil, '1:16', '17:17' ]),
|
|
43
|
+
CalcSpansTC.new(16, 1, [ nil, '2:17', '18:18' ])
|
|
44
|
+
].each do |t|
|
|
45
|
+
worksheet = @workbook.add_worksheet('')
|
|
46
|
+
r = t.row
|
|
47
|
+
col = t.col
|
|
48
|
+
(r .. r + 16).each do |row|
|
|
49
|
+
worksheet.write(row, col, 1)
|
|
50
|
+
col += 1
|
|
51
|
+
end
|
|
52
|
+
worksheet.__send__('calculate_spans')
|
|
53
|
+
result = worksheet.instance_variable_get(:@row_spans)
|
|
54
|
+
expected = t.expected
|
|
55
|
+
assert_equal(expected, result, "WHEN row: #{t.row}, col: #{t.col}")
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx/workbook'
|
|
4
|
+
require 'write_xlsx/worksheet'
|
|
5
|
+
require 'stringio'
|
|
6
|
+
|
|
7
|
+
class TestConvertDateTime01 < Test::Unit::TestCase
|
|
8
|
+
def setup
|
|
9
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
10
|
+
@worksheet = @workbook.add_worksheet('')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_convert_date_time
|
|
14
|
+
lines = data_for_test.split(/\n/)
|
|
15
|
+
until lines.empty?
|
|
16
|
+
line = lines.shift
|
|
17
|
+
if line =~ /"DateTime">([^<]+)/
|
|
18
|
+
date_time = $1
|
|
19
|
+
if lines.shift =~ /"Number">([^<]+)/
|
|
20
|
+
number = 0 + $1.to_f
|
|
21
|
+
result = @worksheet.convert_date_time(date_time)
|
|
22
|
+
assert fit_cmp(number, result)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def data_for_test
|
|
29
|
+
<<EOS
|
|
30
|
+
# Test data taken from Excel in XML format.
|
|
31
|
+
<Row>
|
|
32
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">1899-12-31T00:00:00.000</Data></Cell>
|
|
33
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">0</Data></Cell>
|
|
34
|
+
</Row>
|
|
35
|
+
<Row>
|
|
36
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">1982-08-25T00:15:20.213</Data></Cell>
|
|
37
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">30188.010650613425</Data></Cell>
|
|
38
|
+
</Row>
|
|
39
|
+
<Row>
|
|
40
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2065-04-19T00:16:48.290</Data></Cell>
|
|
41
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">60376.011670023145</Data></Cell>
|
|
42
|
+
</Row>
|
|
43
|
+
<Row>
|
|
44
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2147-12-15T00:55:25.446</Data></Cell>
|
|
45
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">90565.038488958337</Data></Cell>
|
|
46
|
+
</Row>
|
|
47
|
+
<Row>
|
|
48
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2230-08-10T01:02:46.891</Data></Cell>
|
|
49
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">120753.04359827546</Data></Cell>
|
|
50
|
+
</Row>
|
|
51
|
+
<Row>
|
|
52
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2313-04-06T01:04:15.597</Data></Cell>
|
|
53
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">150942.04462496529</Data></Cell>
|
|
54
|
+
</Row>
|
|
55
|
+
<Row>
|
|
56
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2395-11-30T01:09:40.889</Data></Cell>
|
|
57
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">181130.04838991899</Data></Cell>
|
|
58
|
+
</Row>
|
|
59
|
+
<Row>
|
|
60
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2478-07-25T01:11:32.560</Data></Cell>
|
|
61
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">211318.04968240741</Data></Cell>
|
|
62
|
+
</Row>
|
|
63
|
+
<Row>
|
|
64
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2561-03-21T01:30:19.169</Data></Cell>
|
|
65
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">241507.06272186342</Data></Cell>
|
|
66
|
+
</Row>
|
|
67
|
+
<Row>
|
|
68
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2643-11-15T01:48:25.580</Data></Cell>
|
|
69
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">271695.07529606484</Data></Cell>
|
|
70
|
+
</Row>
|
|
71
|
+
<Row>
|
|
72
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2726-07-12T02:03:31.919</Data></Cell>
|
|
73
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">301884.08578609955</Data></Cell>
|
|
74
|
+
</Row>
|
|
75
|
+
<Row>
|
|
76
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2809-03-06T02:11:11.986</Data></Cell>
|
|
77
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">332072.09111094906</Data></Cell>
|
|
78
|
+
</Row>
|
|
79
|
+
<Row>
|
|
80
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2891-10-31T02:24:37.095</Data></Cell>
|
|
81
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">362261.10042934027</Data></Cell>
|
|
82
|
+
</Row>
|
|
83
|
+
<Row>
|
|
84
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">2974-06-26T02:35:07.220</Data></Cell>
|
|
85
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">392449.10772245371</Data></Cell>
|
|
86
|
+
</Row>
|
|
87
|
+
<Row>
|
|
88
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3057-02-19T02:45:12.109</Data></Cell>
|
|
89
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">422637.1147234838</Data></Cell>
|
|
90
|
+
</Row>
|
|
91
|
+
<Row>
|
|
92
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3139-10-17T03:06:39.990</Data></Cell>
|
|
93
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">452826.12962951389</Data></Cell>
|
|
94
|
+
</Row>
|
|
95
|
+
<Row>
|
|
96
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3222-06-11T03:08:08.251</Data></Cell>
|
|
97
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">483014.13065105322</Data></Cell>
|
|
98
|
+
</Row>
|
|
99
|
+
<Row>
|
|
100
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3305-02-05T03:19:12.576</Data></Cell>
|
|
101
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">513203.13834</Data></Cell>
|
|
102
|
+
</Row>
|
|
103
|
+
<Row>
|
|
104
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3387-10-01T03:29:42.574</Data></Cell>
|
|
105
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">543391.14563164348</Data></Cell>
|
|
106
|
+
</Row>
|
|
107
|
+
<Row>
|
|
108
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3470-05-27T03:37:30.813</Data></Cell>
|
|
109
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">573579.15105107636</Data></Cell>
|
|
110
|
+
</Row>
|
|
111
|
+
<Row>
|
|
112
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3553-01-21T04:14:38.231</Data></Cell>
|
|
113
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">603768.17683137732</Data></Cell>
|
|
114
|
+
</Row>
|
|
115
|
+
<Row>
|
|
116
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3635-09-16T04:16:28.559</Data></Cell>
|
|
117
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">633956.17810832174</Data></Cell>
|
|
118
|
+
</Row>
|
|
119
|
+
<Row>
|
|
120
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3718-05-13T04:17:58.222</Data></Cell>
|
|
121
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">664145.17914608796</Data></Cell>
|
|
122
|
+
</Row>
|
|
123
|
+
<Row>
|
|
124
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3801-01-06T04:21:41.794</Data></Cell>
|
|
125
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">694333.18173372687</Data></Cell>
|
|
126
|
+
</Row>
|
|
127
|
+
<Row>
|
|
128
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3883-09-02T04:56:35.792</Data></Cell>
|
|
129
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">724522.20596981479</Data></Cell>
|
|
130
|
+
</Row>
|
|
131
|
+
<Row>
|
|
132
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">3966-04-28T05:25:14.885</Data></Cell>
|
|
133
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">754710.2258667245</Data></Cell>
|
|
134
|
+
</Row>
|
|
135
|
+
<Row>
|
|
136
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4048-12-21T05:26:05.724</Data></Cell>
|
|
137
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">784898.22645513888</Data></Cell>
|
|
138
|
+
</Row>
|
|
139
|
+
<Row>
|
|
140
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4131-08-18T05:46:44.068</Data></Cell>
|
|
141
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">815087.24078782403</Data></Cell>
|
|
142
|
+
</Row>
|
|
143
|
+
<Row>
|
|
144
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4214-04-13T05:48:01.141</Data></Cell>
|
|
145
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">845275.24167987274</Data></Cell>
|
|
146
|
+
</Row>
|
|
147
|
+
<Row>
|
|
148
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4296-12-07T05:53:52.315</Data></Cell>
|
|
149
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">875464.24574438657</Data></Cell>
|
|
150
|
+
</Row>
|
|
151
|
+
<Row>
|
|
152
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4379-08-03T06:14:48.580</Data></Cell>
|
|
153
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">905652.26028449077</Data></Cell>
|
|
154
|
+
</Row>
|
|
155
|
+
<Row>
|
|
156
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4462-03-28T06:46:15.738</Data></Cell>
|
|
157
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">935840.28212659725</Data></Cell>
|
|
158
|
+
</Row>
|
|
159
|
+
<Row>
|
|
160
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4544-11-22T07:31:20.407</Data></Cell>
|
|
161
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">966029.31343063654</Data></Cell>
|
|
162
|
+
</Row>
|
|
163
|
+
<Row>
|
|
164
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4627-07-19T07:58:33.754</Data></Cell>
|
|
165
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">996217.33233511576</Data></Cell>
|
|
166
|
+
</Row>
|
|
167
|
+
<Row>
|
|
168
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4710-03-15T08:07:43.130</Data></Cell>
|
|
169
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1026406.3386936343</Data></Cell>
|
|
170
|
+
</Row>
|
|
171
|
+
<Row>
|
|
172
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4792-11-07T08:29:11.091</Data></Cell>
|
|
173
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1056594.3536005903</Data></Cell>
|
|
174
|
+
</Row>
|
|
175
|
+
<Row>
|
|
176
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4875-07-04T09:08:15.328</Data></Cell>
|
|
177
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1086783.3807329629</Data></Cell>
|
|
178
|
+
</Row>
|
|
179
|
+
<Row>
|
|
180
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">4958-02-27T09:30:41.781</Data></Cell>
|
|
181
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1116971.3963169097</Data></Cell>
|
|
182
|
+
</Row>
|
|
183
|
+
<Row>
|
|
184
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5040-10-23T09:34:04.462</Data></Cell>
|
|
185
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1147159.3986627546</Data></Cell>
|
|
186
|
+
</Row>
|
|
187
|
+
<Row>
|
|
188
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5123-06-20T09:37:23.945</Data></Cell>
|
|
189
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1177348.4009715857</Data></Cell>
|
|
190
|
+
</Row>
|
|
191
|
+
<Row>
|
|
192
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5206-02-12T09:37:56.655</Data></Cell>
|
|
193
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1207536.4013501736</Data></Cell>
|
|
194
|
+
</Row>
|
|
195
|
+
<Row>
|
|
196
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5288-10-08T09:45:12.230</Data></Cell>
|
|
197
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1237725.406391551</Data></Cell>
|
|
198
|
+
</Row>
|
|
199
|
+
<Row>
|
|
200
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5371-06-04T09:54:14.782</Data></Cell>
|
|
201
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1267913.412671088</Data></Cell>
|
|
202
|
+
</Row>
|
|
203
|
+
<Row>
|
|
204
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5454-01-28T09:54:22.108</Data></Cell>
|
|
205
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1298101.4127558796</Data></Cell>
|
|
206
|
+
</Row>
|
|
207
|
+
<Row>
|
|
208
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5536-09-24T10:01:36.151</Data></Cell>
|
|
209
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1328290.4177795255</Data></Cell>
|
|
210
|
+
</Row>
|
|
211
|
+
<Row>
|
|
212
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5619-05-20T12:09:48.602</Data></Cell>
|
|
213
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1358478.5068125231</Data></Cell>
|
|
214
|
+
</Row>
|
|
215
|
+
<Row>
|
|
216
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5702-01-14T12:34:08.549</Data></Cell>
|
|
217
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1388667.5237100578</Data></Cell>
|
|
218
|
+
</Row>
|
|
219
|
+
<Row>
|
|
220
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5784-09-08T12:56:06.495</Data></Cell>
|
|
221
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1418855.5389640625</Data></Cell>
|
|
222
|
+
</Row>
|
|
223
|
+
<Row>
|
|
224
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5867-05-06T12:58:58.217</Data></Cell>
|
|
225
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1449044.5409515856</Data></Cell>
|
|
226
|
+
</Row>
|
|
227
|
+
<Row>
|
|
228
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">5949-12-30T12:59:54.263</Data></Cell>
|
|
229
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1479232.5416002662</Data></Cell>
|
|
230
|
+
</Row>
|
|
231
|
+
<Row>
|
|
232
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6032-08-24T13:34:41.331</Data></Cell>
|
|
233
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1509420.5657561459</Data></Cell>
|
|
234
|
+
</Row>
|
|
235
|
+
<Row>
|
|
236
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6115-04-21T13:58:28.601</Data></Cell>
|
|
237
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1539609.5822754744</Data></Cell>
|
|
238
|
+
</Row>
|
|
239
|
+
<Row>
|
|
240
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6197-12-14T14:02:16.899</Data></Cell>
|
|
241
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1569797.5849178126</Data></Cell>
|
|
242
|
+
</Row>
|
|
243
|
+
<Row>
|
|
244
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6280-08-10T14:36:17.444</Data></Cell>
|
|
245
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1599986.6085352316</Data></Cell>
|
|
246
|
+
</Row>
|
|
247
|
+
<Row>
|
|
248
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6363-04-06T14:37:57.451</Data></Cell>
|
|
249
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1630174.60969272</Data></Cell>
|
|
250
|
+
</Row>
|
|
251
|
+
<Row>
|
|
252
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6445-11-30T14:57:42.757</Data></Cell>
|
|
253
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1660363.6234115392</Data></Cell>
|
|
254
|
+
</Row>
|
|
255
|
+
<Row>
|
|
256
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6528-07-26T15:10:48.307</Data></Cell>
|
|
257
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1690551.6325035533</Data></Cell>
|
|
258
|
+
</Row>
|
|
259
|
+
<Row>
|
|
260
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6611-03-22T15:14:39.890</Data></Cell>
|
|
261
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1720739.635183912</Data></Cell>
|
|
262
|
+
</Row>
|
|
263
|
+
<Row>
|
|
264
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6693-11-15T15:19:47.988</Data></Cell>
|
|
265
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1750928.6387498612</Data></Cell>
|
|
266
|
+
</Row>
|
|
267
|
+
<Row>
|
|
268
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6776-07-11T16:04:24.344</Data></Cell>
|
|
269
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1781116.6697262037</Data></Cell>
|
|
270
|
+
</Row>
|
|
271
|
+
<Row>
|
|
272
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6859-03-07T16:22:23.952</Data></Cell>
|
|
273
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1811305.6822216667</Data></Cell>
|
|
274
|
+
</Row>
|
|
275
|
+
<Row>
|
|
276
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">6941-10-31T16:29:55.999</Data></Cell>
|
|
277
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1841493.6874536921</Data></Cell>
|
|
278
|
+
</Row>
|
|
279
|
+
<Row>
|
|
280
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7024-06-26T16:58:20.259</Data></Cell>
|
|
281
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1871681.7071789235</Data></Cell>
|
|
282
|
+
</Row>
|
|
283
|
+
<Row>
|
|
284
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7107-02-21T17:04:02.415</Data></Cell>
|
|
285
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1901870.7111390624</Data></Cell>
|
|
286
|
+
</Row>
|
|
287
|
+
<Row>
|
|
288
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7189-10-16T17:18:29.630</Data></Cell>
|
|
289
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1932058.7211762732</Data></Cell>
|
|
290
|
+
</Row>
|
|
291
|
+
<Row>
|
|
292
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7272-06-11T17:47:21.323</Data></Cell>
|
|
293
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1962247.7412190163</Data></Cell>
|
|
294
|
+
</Row>
|
|
295
|
+
<Row>
|
|
296
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7355-02-05T17:53:29.866</Data></Cell>
|
|
297
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">1992435.7454845603</Data></Cell>
|
|
298
|
+
</Row>
|
|
299
|
+
<Row>
|
|
300
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7437-10-02T17:53:41.076</Data></Cell>
|
|
301
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2022624.7456143056</Data></Cell>
|
|
302
|
+
</Row>
|
|
303
|
+
<Row>
|
|
304
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7520-05-28T17:55:06.044</Data></Cell>
|
|
305
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2052812.7465977315</Data></Cell>
|
|
306
|
+
</Row>
|
|
307
|
+
<Row>
|
|
308
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7603-01-21T18:14:49.151</Data></Cell>
|
|
309
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2083000.7602910995</Data></Cell>
|
|
310
|
+
</Row>
|
|
311
|
+
<Row>
|
|
312
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7685-09-16T18:17:45.738</Data></Cell>
|
|
313
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2113189.7623349307</Data></Cell>
|
|
314
|
+
</Row>
|
|
315
|
+
<Row>
|
|
316
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7768-05-12T18:29:59.700</Data></Cell>
|
|
317
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2143377.7708298611</Data></Cell>
|
|
318
|
+
</Row>
|
|
319
|
+
<Row>
|
|
320
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7851-01-07T18:33:21.233</Data></Cell>
|
|
321
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2173566.773162419</Data></Cell>
|
|
322
|
+
</Row>
|
|
323
|
+
<Row>
|
|
324
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">7933-09-02T19:14:24.673</Data></Cell>
|
|
325
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2203754.8016744559</Data></Cell>
|
|
326
|
+
</Row>
|
|
327
|
+
<Row>
|
|
328
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8016-04-27T19:17:12.816</Data></Cell>
|
|
329
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2233942.8036205554</Data></Cell>
|
|
330
|
+
</Row>
|
|
331
|
+
<Row>
|
|
332
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8098-12-22T19:23:36.418</Data></Cell>
|
|
333
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2264131.8080603937</Data></Cell>
|
|
334
|
+
</Row>
|
|
335
|
+
<Row>
|
|
336
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8181-08-17T19:46:25.908</Data></Cell>
|
|
337
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2294319.8239109721</Data></Cell>
|
|
338
|
+
</Row>
|
|
339
|
+
<Row>
|
|
340
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8264-04-13T20:07:47.314</Data></Cell>
|
|
341
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2324508.8387420601</Data></Cell>
|
|
342
|
+
</Row>
|
|
343
|
+
<Row>
|
|
344
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8346-12-08T20:31:37.603</Data></Cell>
|
|
345
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2354696.855296331</Data></Cell>
|
|
346
|
+
</Row>
|
|
347
|
+
<Row>
|
|
348
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8429-08-03T20:39:57.770</Data></Cell>
|
|
349
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2384885.8610853008</Data></Cell>
|
|
350
|
+
</Row>
|
|
351
|
+
<Row>
|
|
352
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8512-03-29T20:50:17.067</Data></Cell>
|
|
353
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2415073.8682530904</Data></Cell>
|
|
354
|
+
</Row>
|
|
355
|
+
<Row>
|
|
356
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8594-11-22T21:02:57.827</Data></Cell>
|
|
357
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2445261.8770581828</Data></Cell>
|
|
358
|
+
</Row>
|
|
359
|
+
<Row>
|
|
360
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8677-07-19T21:23:05.519</Data></Cell>
|
|
361
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2475450.8910360998</Data></Cell>
|
|
362
|
+
</Row>
|
|
363
|
+
<Row>
|
|
364
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8760-03-14T21:34:49.572</Data></Cell>
|
|
365
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2505638.8991848612</Data></Cell>
|
|
366
|
+
</Row>
|
|
367
|
+
<Row>
|
|
368
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8842-11-08T21:39:05.944</Data></Cell>
|
|
369
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2535827.9021521294</Data></Cell>
|
|
370
|
+
</Row>
|
|
371
|
+
<Row>
|
|
372
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">8925-07-04T21:39:18.426</Data></Cell>
|
|
373
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2566015.9022965971</Data></Cell>
|
|
374
|
+
</Row>
|
|
375
|
+
<Row>
|
|
376
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9008-02-28T21:46:07.769</Data></Cell>
|
|
377
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2596203.9070343636</Data></Cell>
|
|
378
|
+
</Row>
|
|
379
|
+
<Row>
|
|
380
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9090-10-24T21:57:55.662</Data></Cell>
|
|
381
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2626392.9152275696</Data></Cell>
|
|
382
|
+
</Row>
|
|
383
|
+
<Row>
|
|
384
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9173-06-19T22:19:11.732</Data></Cell>
|
|
385
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2656580.9299968979</Data></Cell>
|
|
386
|
+
</Row>
|
|
387
|
+
<Row>
|
|
388
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9256-02-13T22:23:51.376</Data></Cell>
|
|
389
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2686769.9332335186</Data></Cell>
|
|
390
|
+
</Row>
|
|
391
|
+
<Row>
|
|
392
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9338-10-09T22:27:58.771</Data></Cell>
|
|
393
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2716957.9360968866</Data></Cell>
|
|
394
|
+
</Row>
|
|
395
|
+
<Row>
|
|
396
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9421-06-05T22:43:30.392</Data></Cell>
|
|
397
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2747146.9468795368</Data></Cell>
|
|
398
|
+
</Row>
|
|
399
|
+
<Row>
|
|
400
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9504-01-30T22:48:25.834</Data></Cell>
|
|
401
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2777334.9502990046</Data></Cell>
|
|
402
|
+
</Row>
|
|
403
|
+
<Row>
|
|
404
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9586-09-24T22:53:51.727</Data></Cell>
|
|
405
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2807522.9540709145</Data></Cell>
|
|
406
|
+
</Row>
|
|
407
|
+
<Row>
|
|
408
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9669-05-20T23:12:56.536</Data></Cell>
|
|
409
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2837711.9673210187</Data></Cell>
|
|
410
|
+
</Row>
|
|
411
|
+
<Row>
|
|
412
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9752-01-14T23:15:54.109</Data></Cell>
|
|
413
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2867899.9693762613</Data></Cell>
|
|
414
|
+
</Row>
|
|
415
|
+
<Row>
|
|
416
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9834-09-10T23:17:12.632</Data></Cell>
|
|
417
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2898088.9702850925</Data></Cell>
|
|
418
|
+
</Row>
|
|
419
|
+
<Row>
|
|
420
|
+
<Cell ss:StyleID="s21"><Data ss:Type="DateTime">9999-12-31T23:59:59.000</Data></Cell>
|
|
421
|
+
<Cell ss:StyleID="s22" ss:Formula="=RC[-1]"><Data ss:Type="Number">2958465.999988426</Data></Cell>
|
|
422
|
+
</Row>
|
|
423
|
+
EOS
|
|
424
|
+
end
|
|
425
|
+
|
|
426
|
+
def test_fit_cmp_pass
|
|
427
|
+
result = @worksheet.convert_date_time('1899-12-31T00:00:00.0004')
|
|
428
|
+
assert fit_cmp(0, result)
|
|
429
|
+
end
|
|
430
|
+
|
|
431
|
+
def test_fit_cmp_fail
|
|
432
|
+
result = @worksheet.convert_date_time('1899-12-31T00:00:00.0005')
|
|
433
|
+
assert !fit_cmp(0, result)
|
|
434
|
+
end
|
|
435
|
+
|
|
436
|
+
def fit_cmp(a, b)
|
|
437
|
+
(a - b).abs < 0.5 / ( 24 * 60 * 60 * 1000 )
|
|
438
|
+
end
|
|
439
|
+
end
|