write_xlsx 1.04.0 → 1.07.0

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +0 -1
  3. data/Changes +19 -0
  4. data/README.md +1 -1
  5. data/examples/chart_data_labels.rb +320 -0
  6. data/lib/write_xlsx/chart.rb +152 -28
  7. data/lib/write_xlsx/chart/series.rb +100 -0
  8. data/lib/write_xlsx/utility.rb +4 -2
  9. data/lib/write_xlsx/version.rb +1 -1
  10. data/lib/write_xlsx/worksheet.rb +12 -6
  11. data/test/perl_output/chart_data_labels.xlsx +0 -0
  12. data/test/regression/test_array_formula04.rb +31 -0
  13. data/test/regression/test_chart_data_labels26.rb +44 -0
  14. data/test/regression/test_chart_data_labels27.rb +44 -0
  15. data/test/regression/test_chart_data_labels28.rb +52 -0
  16. data/test/regression/test_chart_data_labels29.rb +43 -0
  17. data/test/regression/test_chart_data_labels30.rb +46 -0
  18. data/test/regression/test_chart_data_labels31.rb +49 -0
  19. data/test/regression/test_chart_data_labels32.rb +54 -0
  20. data/test/regression/test_chart_data_labels33.rb +52 -0
  21. data/test/regression/test_chart_data_labels34.rb +54 -0
  22. data/test/regression/test_chart_data_labels35.rb +46 -0
  23. data/test/regression/test_chart_data_labels36.rb +54 -0
  24. data/test/regression/test_chart_data_labels37.rb +51 -0
  25. data/test/regression/test_chart_data_labels38.rb +54 -0
  26. data/test/regression/test_chart_data_labels39.rb +53 -0
  27. data/test/regression/test_chart_data_labels40.rb +53 -0
  28. data/test/regression/test_chart_data_labels41.rb +54 -0
  29. data/test/regression/test_chart_data_labels42.rb +58 -0
  30. data/test/regression/test_chart_data_labels43.rb +58 -0
  31. data/test/regression/test_chart_data_labels44.rb +56 -0
  32. data/test/regression/test_chart_data_labels45.rb +57 -0
  33. data/test/regression/test_chart_data_labels46.rb +61 -0
  34. data/test/regression/test_chart_data_labels47.rb +61 -0
  35. data/test/regression/xlsx_files/array_formula04.xlsx +0 -0
  36. data/test/regression/xlsx_files/chart_data_labels26.xlsx +0 -0
  37. data/test/regression/xlsx_files/chart_data_labels27.xlsx +0 -0
  38. data/test/regression/xlsx_files/chart_data_labels28.xlsx +0 -0
  39. data/test/regression/xlsx_files/chart_data_labels29.xlsx +0 -0
  40. data/test/regression/xlsx_files/chart_data_labels30.xlsx +0 -0
  41. data/test/regression/xlsx_files/chart_data_labels31.xlsx +0 -0
  42. data/test/regression/xlsx_files/chart_data_labels32.xlsx +0 -0
  43. data/test/regression/xlsx_files/chart_data_labels33.xlsx +0 -0
  44. data/test/regression/xlsx_files/chart_data_labels34.xlsx +0 -0
  45. data/test/regression/xlsx_files/chart_data_labels35.xlsx +0 -0
  46. data/test/regression/xlsx_files/chart_data_labels36.xlsx +0 -0
  47. data/test/regression/xlsx_files/chart_data_labels37.xlsx +0 -0
  48. data/test/regression/xlsx_files/chart_data_labels38.xlsx +0 -0
  49. data/test/regression/xlsx_files/chart_data_labels39.xlsx +0 -0
  50. data/test/regression/xlsx_files/chart_data_labels40.xlsx +0 -0
  51. data/test/regression/xlsx_files/chart_data_labels41.xlsx +0 -0
  52. data/test/regression/xlsx_files/chart_data_labels42.xlsx +0 -0
  53. data/test/regression/xlsx_files/chart_data_labels43.xlsx +0 -0
  54. data/test/regression/xlsx_files/chart_data_labels44.xlsx +0 -0
  55. data/test/regression/xlsx_files/chart_data_labels45.xlsx +0 -0
  56. data/test/regression/xlsx_files/chart_data_labels46.xlsx +0 -0
  57. data/test/regression/xlsx_files/chart_data_labels47.xlsx +0 -0
  58. data/test/test_example_match.rb +314 -1
  59. metadata +97 -2
@@ -0,0 +1,53 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionChartDataLabels40 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_chart_data_labels40
14
+ @xlsx = 'chart_data_labels40.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+ chart = workbook.add_chart(:type => 'column', :embedded => 1)
18
+
19
+ # For testing, copy the randomly generated axis ids in the target xlsx file.
20
+ chart.instance_variable_set(:@axis_ids, [61191680, 61193600])
21
+
22
+ data = [
23
+ [ 1, 2, 3, 4, 5],
24
+ [ 2, 4, 6, 8, 10],
25
+ [ 3, 6, 9, 12, 15]
26
+ ]
27
+
28
+ worksheet.write('A1', data)
29
+
30
+ chart.add_series(
31
+ :values => '=Sheet1!$A$1:$A$5',
32
+ :data_labels => {
33
+ :value => 1,
34
+ :custom => [
35
+ {
36
+ :value => 33,
37
+ :border => {
38
+ :color => 'red'
39
+ }
40
+ }
41
+ ]
42
+ }
43
+ )
44
+
45
+ chart.add_series(:values => '=Sheet1!$B$1:$B$5')
46
+ chart.add_series(:values => '=Sheet1!$C$1:$C$5')
47
+
48
+ worksheet.insert_chart('E9', chart)
49
+
50
+ workbook.close
51
+ compare_for_regression
52
+ end
53
+ end
@@ -0,0 +1,54 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionChartDataLabels41 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_chart_data_labels41
14
+ @xlsx = 'chart_data_labels41.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+ chart = workbook.add_chart(:type => 'column', :embedded => 1)
18
+
19
+ # For testing, copy the randomly generated axis ids in the target xlsx file.
20
+ chart.instance_variable_set(:@axis_ids, [74893568, 80048128])
21
+
22
+ data = [
23
+ [ 1, 2, 3, 4, 5],
24
+ [ 2, 4, 6, 8, 10],
25
+ [ 3, 6, 9, 12, 15],
26
+ [ 10, 20, 30, 40, 50]
27
+ ]
28
+
29
+ worksheet.write('A1', data)
30
+
31
+ chart.add_series(
32
+ :values => '=Sheet1!$A$1:$A$5',
33
+ :data_labels => {
34
+ :value => 1,
35
+ :custom => [
36
+ {
37
+ :value => '=Sheet1!$D$1',
38
+ :border => {
39
+ :color => 'red'
40
+ }
41
+ }
42
+ ]
43
+ }
44
+ )
45
+
46
+ chart.add_series(:values => '=Sheet1!$B$1:$B$5')
47
+ chart.add_series(:values => '=Sheet1!$C$1:$C$5')
48
+
49
+ worksheet.insert_chart('E9', chart)
50
+
51
+ workbook.close
52
+ compare_for_regression
53
+ end
54
+ end
@@ -0,0 +1,58 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionChartDataLabels42 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_chart_data_labels42
14
+ @xlsx = 'chart_data_labels42.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+ chart = workbook.add_chart(:type => 'column', :embedded => 1)
18
+
19
+ # For testing, copy the randomly generated axis ids in the target xlsx file.
20
+ chart.instance_variable_set(:@axis_ids, [74893568, 80048128])
21
+
22
+ data = [
23
+ [ 1, 2, 3, 4, 5],
24
+ [ 2, 4, 6, 8, 10],
25
+ [ 3, 6, 9, 12, 15],
26
+ [ 10, 20, 30, 40, 50]
27
+ ]
28
+
29
+ worksheet.write('A1', data)
30
+
31
+ chart.add_series(
32
+ :values => '=Sheet1!$A$1:$A$5',
33
+ :data_labels => {
34
+ :value => 1,
35
+ :custom => [
36
+ {
37
+ :value => '=Sheet1!$D$1',
38
+ :font => {
39
+ :baseline => -1,
40
+ :color => 'red'
41
+ },
42
+ :border => {
43
+ :color => 'red'
44
+ }
45
+ }
46
+ ]
47
+ }
48
+ )
49
+
50
+ chart.add_series(:values => '=Sheet1!$B$1:$B$5')
51
+ chart.add_series(:values => '=Sheet1!$C$1:$C$5')
52
+
53
+ worksheet.insert_chart('E9', chart)
54
+
55
+ workbook.close
56
+ compare_for_regression
57
+ end
58
+ end
@@ -0,0 +1,58 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionChartDataLabels43 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_chart_data_labels43
14
+ @xlsx = 'chart_data_labels43.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+ chart = workbook.add_chart(:type => 'column', :embedded => 1)
18
+
19
+ # For testing, copy the randomly generated axis ids in the target xlsx file.
20
+ chart.instance_variable_set(:@axis_ids, [56185600, 56187520])
21
+
22
+ data = [
23
+ [ 1, 2, 3, 4, 5],
24
+ [ 2, 4, 6, 8, 10],
25
+ [ 3, 6, 9, 12, 15]
26
+ ]
27
+
28
+ worksheet.write('A1', data)
29
+
30
+ chart.add_series(
31
+ :values => '=Sheet1!$A$1:$A$5',
32
+ :data_labels => {
33
+ :value => 1,
34
+ :custom => [
35
+ {
36
+ :font => {
37
+ :bold => 1,
38
+ :italic => 1,
39
+ :color => 'red',
40
+ :baseline => -1
41
+ },
42
+ :border => {
43
+ :color => 'red'
44
+ }
45
+ }
46
+ ]
47
+ }
48
+ )
49
+
50
+ chart.add_series(:values => '=Sheet1!$B$1:$B$5')
51
+ chart.add_series(:values => '=Sheet1!$C$1:$C$5')
52
+
53
+ worksheet.insert_chart('E9', chart)
54
+
55
+ workbook.close
56
+ compare_for_regression
57
+ end
58
+ end
@@ -0,0 +1,56 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionChartDataLabels44 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_chart_data_labels44
14
+ @xlsx = 'chart_data_labels44.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+ chart = workbook.add_chart(:type => 'column', :embedded => 1)
18
+
19
+ # For testing, copy the randomly generated axis ids in the target xlsx file.
20
+ chart.instance_variable_set(:@axis_ids, [56179712, 56185600])
21
+
22
+ data = [
23
+ [ 1, 2, 3, 4, 5],
24
+ [ 2, 4, 6, 8, 10],
25
+ [ 3, 6, 9, 12, 15]
26
+ ]
27
+
28
+ worksheet.write('A1', data)
29
+
30
+ chart.add_series(
31
+ :values => '=Sheet1!$A$1:$A$5',
32
+ :data_labels => {
33
+ :value => 1,
34
+ :custom => [
35
+ {
36
+ :value => 33,
37
+ :border => {
38
+ :color => 'red'
39
+ },
40
+ :fill => {
41
+ :color => '#00B050'
42
+ }
43
+ }
44
+ ]
45
+ }
46
+ )
47
+
48
+ chart.add_series(:values => '=Sheet1!$B$1:$B$5')
49
+ chart.add_series(:values => '=Sheet1!$C$1:$C$5')
50
+
51
+ worksheet.insert_chart('E9', chart)
52
+
53
+ workbook.close
54
+ compare_for_regression
55
+ end
56
+ end
@@ -0,0 +1,57 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionChartDataLabels45 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_chart_data_labels45
14
+ @xlsx = 'chart_data_labels45.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+ chart = workbook.add_chart(:type => 'column', :embedded => 1)
18
+
19
+ # For testing, copy the randomly generated axis ids in the target xlsx file.
20
+ chart.instance_variable_set(:@axis_ids, [70329856, 71246976])
21
+
22
+ data = [
23
+ [ 1, 2, 3, 4, 5],
24
+ [ 2, 4, 6, 8, 10],
25
+ [ 3, 6, 9, 12, 15],
26
+ [ 10, 20, 30, 40, 50]
27
+ ]
28
+
29
+ worksheet.write('A1', data)
30
+
31
+ chart.add_series(
32
+ :values => '=Sheet1!$A$1:$A$5',
33
+ :data_labels => {
34
+ :value => 1,
35
+ :custom => [
36
+ {
37
+ :value => '=Sheet1!$D$1',
38
+ :border => {
39
+ :color => 'red'
40
+ },
41
+ :fill => {
42
+ :color => '#00B050'
43
+ }
44
+ }
45
+ ]
46
+ }
47
+ )
48
+
49
+ chart.add_series(:values => '=Sheet1!$B$1:$B$5')
50
+ chart.add_series(:values => '=Sheet1!$C$1:$C$5')
51
+
52
+ worksheet.insert_chart('E9', chart)
53
+
54
+ workbook.close
55
+ compare_for_regression
56
+ end
57
+ end
@@ -0,0 +1,61 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionChartDataLabels46 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_chart_data_labels46
14
+ @xlsx = 'chart_data_labels46.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+ chart = workbook.add_chart(:type => 'column', :embedded => 1)
18
+
19
+ # For testing, copy the randomly generated axis ids in the target xlsx file.
20
+ chart.instance_variable_set(:@axis_ids, [74951296, 74965376])
21
+
22
+ data = [
23
+ [ 1, 2, 3, 4, 5],
24
+ [ 2, 4, 6, 8, 10],
25
+ [ 3, 6, 9, 12, 15],
26
+ [ 10, 20, 30, 40, 50]
27
+ ]
28
+
29
+ worksheet.write('A1', data)
30
+
31
+ chart.add_series(
32
+ :values => '=Sheet1!$A$1:$A$5',
33
+ :data_labels => {
34
+ :value => 1,
35
+ :custom => [
36
+ {
37
+ :value => '=Sheet1!$D$1',
38
+ :font => {
39
+ :color => 'red',
40
+ :baseline => -1
41
+ },
42
+ :border => {
43
+ :color => 'red'
44
+ },
45
+ :fill => {
46
+ :color => '#00B050'
47
+ }
48
+ }
49
+ ]
50
+ }
51
+ )
52
+
53
+ chart.add_series(:values => '=Sheet1!$B$1:$B$5')
54
+ chart.add_series(:values => '=Sheet1!$C$1:$C$5')
55
+
56
+ worksheet.insert_chart('E9', chart)
57
+
58
+ workbook.close
59
+ compare_for_regression
60
+ end
61
+ end
@@ -0,0 +1,61 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TestRegressionChartDataLabels47 < Minitest::Test
5
+ def setup
6
+ setup_dir_var
7
+ end
8
+
9
+ def teardown
10
+ @tempfile.close(true)
11
+ end
12
+
13
+ def test_chart_data_labels47
14
+ @xlsx = 'chart_data_labels47.xlsx'
15
+ workbook = WriteXLSX.new(@io)
16
+ worksheet = workbook.add_worksheet
17
+ chart = workbook.add_chart(:type => 'column', :embedded => 1)
18
+
19
+ # For testing, copy the randomly generated axis ids in the target xlsx file.
20
+ chart.instance_variable_set(:@axis_ids, [92672768, 92674304])
21
+
22
+ data = [
23
+ [ 1, 2, 3, 4, 5],
24
+ [ 2, 4, 6, 8, 10],
25
+ [ 3, 6, 9, 12, 15]
26
+ ]
27
+
28
+ worksheet.write('A1', data)
29
+
30
+ chart.add_series(
31
+ :values => '=Sheet1!$A$1:$A$5',
32
+ :data_labels => {
33
+ :value => 1,
34
+ :custom => [
35
+ {
36
+ :font => {
37
+ :bold => 1,
38
+ :italic => 1,
39
+ :color => 'red',
40
+ :baseline => -1
41
+ },
42
+ :border => {
43
+ :color => 'red'
44
+ },
45
+ :fill => {
46
+ :color => '#00B050'
47
+ }
48
+ }
49
+ ]
50
+ }
51
+ )
52
+
53
+ chart.add_series(:values => '=Sheet1!$B$1:$B$5')
54
+ chart.add_series(:values => '=Sheet1!$C$1:$C$5')
55
+
56
+ worksheet.insert_chart('E9', chart)
57
+
58
+ workbook.close
59
+ compare_for_regression
60
+ end
61
+ end