write_xlsx 1.04.0 → 1.07.0

Sign up to get free protection for your applications and to get access to all the features.
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