write_xlsx 0.62.0 → 0.64.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.
- data/README.rdoc +14 -1
- data/examples/chart_data_tools.rb +215 -0
- data/examples/chart_pie.rb +36 -5
- data/examples/sparklines2.rb +1 -1
- data/examples/tab_colors.rb +3 -3
- data/lib/write_xlsx/chart.rb +559 -516
- data/lib/write_xlsx/chart/area.rb +4 -1
- data/lib/write_xlsx/chart/axis.rb +132 -0
- data/lib/write_xlsx/chart/bar.rb +17 -9
- data/lib/write_xlsx/chart/column.rb +9 -1
- data/lib/write_xlsx/chart/line.rb +24 -0
- data/lib/write_xlsx/chart/radar.rb +2 -2
- data/lib/write_xlsx/chart/scatter.rb +19 -0
- data/lib/write_xlsx/chart/stock.rb +10 -3
- data/lib/write_xlsx/drawing.rb +43 -44
- data/lib/write_xlsx/package/vml.rb +21 -14
- data/lib/write_xlsx/shape.rb +173 -22
- data/lib/write_xlsx/sparkline.rb +524 -0
- data/lib/write_xlsx/version.rb +1 -1
- data/lib/write_xlsx/workbook.rb +183 -115
- data/lib/write_xlsx/worksheet.rb +821 -1073
- data/lib/write_xlsx/worksheet/cell_data.rb +132 -0
- data/lib/write_xlsx/worksheet/print_style.rb +51 -0
- data/test/chart/test_add_series.rb +31 -6
- data/test/chart/test_write_d_lbls.rb +18 -18
- data/test/chart/test_write_number_format.rb +20 -24
- data/test/drawing/test_drawing_shape_01.rb +1 -1
- data/test/drawing/test_drawing_shape_02.rb +2 -2
- data/test/drawing/test_drawing_shape_03.rb +5 -5
- data/test/drawing/test_drawing_shape_04.rb +3 -3
- data/test/drawing/test_drawing_shape_05.rb +4 -4
- data/test/drawing/test_drawing_shape_07.rb +2 -2
- data/test/perl_output/chart_data_tools.xlsx +0 -0
- data/test/perl_output/chart_pie.xlsx +0 -0
- data/test/regression/disabled_test_vml04.rb +2 -2
- data/test/regression/test_chart_drop_lines01.rb +46 -0
- data/test/regression/test_chart_drop_lines02.rb +51 -0
- data/test/regression/test_chart_drop_lines03.rb +46 -0
- data/test/regression/test_chart_drop_lines04.rb +64 -0
- data/test/regression/test_chart_errorbars01.rb +47 -0
- data/test/regression/test_chart_errorbars02.rb +57 -0
- data/test/regression/test_chart_errorbars03.rb +53 -0
- data/test/regression/test_chart_errorbars04.rb +48 -0
- data/test/regression/test_chart_errorbars05.rb +47 -0
- data/test/regression/test_chart_errorbars06.rb +47 -0
- data/test/regression/test_chart_errorbars07.rb +66 -0
- data/test/regression/test_chart_font02.rb +1 -1
- data/test/regression/test_chart_font06.rb +1 -1
- data/test/regression/test_chart_gridlines04.rb +2 -1
- data/test/regression/test_chart_gridlines08.rb +2 -1
- data/test/regression/test_chart_points01.rb +37 -0
- data/test/regression/test_chart_points02.rb +40 -0
- data/test/regression/test_chart_points03.rb +42 -0
- data/test/regression/test_chart_points04.rb +52 -0
- data/test/regression/test_chart_points05.rb +49 -0
- data/test/regression/test_chart_points06.rb +49 -0
- data/test/regression/test_chartsheet05.rb +1 -1
- data/test/regression/test_chartsheet06.rb +1 -1
- data/test/regression/test_comment01.rb +1 -1
- data/test/regression/test_comment02.rb +1 -1
- data/test/regression/test_comment03.rb +1 -1
- data/test/regression/test_comment04.rb +2 -2
- data/test/regression/test_comment06.rb +1 -1
- data/test/regression/test_comment07.rb +1 -1
- data/test/regression/test_comment08.rb +1 -1
- data/test/regression/test_comment09.rb +1 -1
- data/test/regression/test_comment10.rb +1 -1
- data/test/regression/test_default_row04.rb +1 -1
- data/test/regression/test_escapes02.rb +1 -1
- data/test/regression/test_hyperlink15.rb +2 -2
- data/test/regression/test_shape_connect01.rb +6 -6
- data/test/regression/test_shape_connect02.rb +6 -6
- data/test/regression/test_shape_connect03.rb +11 -11
- data/test/regression/test_shape_connect04.rb +10 -10
- data/test/regression/test_shape_scale01.rb +2 -2
- data/test/regression/test_shape_stencil01.rb +3 -3
- data/test/regression/test_tab_color01.rb +1 -1
- data/test/regression/test_table04.rb +1 -1
- data/test/regression/test_table05.rb +1 -1
- data/test/regression/test_table06.rb +1 -1
- data/test/regression/test_vml01.rb +1 -1
- data/test/regression/test_vml02.rb +1 -1
- data/test/regression/test_vml03.rb +2 -2
- 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_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_stock02.xlsx +0 -0
- data/test/test_example_match.rb +278 -57
- data/test/worksheet/test_convert_date_time_02.rb +427 -433
- data/test/worksheet/test_convert_date_time_03.rb +1 -1
- data/test/worksheet/test_write_sheet_pr.rb +2 -2
- data/test/worksheet/test_write_sheet_view1.rb +2 -2
- metadata +80 -10
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
module Writexlsx
|
|
4
|
+
class Worksheet
|
|
5
|
+
class CellData # :nodoc:
|
|
6
|
+
include Writexlsx::Utility
|
|
7
|
+
|
|
8
|
+
attr_reader :row, :col, :token, :xf
|
|
9
|
+
attr_reader :result, :range, :link_type, :url, :tip
|
|
10
|
+
|
|
11
|
+
#
|
|
12
|
+
# attributes for the <cell> element. This is the innermost loop so efficiency is
|
|
13
|
+
# important where possible.
|
|
14
|
+
#
|
|
15
|
+
def cell_attributes #:nodoc:
|
|
16
|
+
xf_index = xf ? xf.get_xf_index : 0
|
|
17
|
+
attributes = ['r', xl_rowcol_to_cell(row, col)]
|
|
18
|
+
|
|
19
|
+
# Add the cell format index.
|
|
20
|
+
if xf_index != 0
|
|
21
|
+
attributes << 's' << xf_index
|
|
22
|
+
elsif @worksheet.set_rows[row] && @worksheet.set_rows[row][1]
|
|
23
|
+
row_xf = @worksheet.set_rows[row][1]
|
|
24
|
+
attributes << 's' << row_xf.get_xf_index
|
|
25
|
+
elsif @worksheet.col_formats[col]
|
|
26
|
+
col_xf = @worksheet.col_formats[col]
|
|
27
|
+
attributes << 's' << col_xf.get_xf_index
|
|
28
|
+
end
|
|
29
|
+
attributes
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def display_url_string?
|
|
33
|
+
true
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
class NumberCellData < CellData # :nodoc:
|
|
38
|
+
def initialize(worksheet, row, col, num, xf)
|
|
39
|
+
@worksheet = worksheet
|
|
40
|
+
@row, @col, @token, @xf = row, col, num, xf
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def data
|
|
44
|
+
@token
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def write_cell
|
|
48
|
+
@worksheet.writer.tag_elements('c', cell_attributes) do
|
|
49
|
+
@worksheet.write_cell_value(token)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class StringCellData < CellData # :nodoc:
|
|
55
|
+
def initialize(worksheet, row, col, index, xf)
|
|
56
|
+
@worksheet = worksheet
|
|
57
|
+
@row, @col, @token, @xf = row, col, index, xf
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def data
|
|
61
|
+
{ :sst_id => token }
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def write_cell
|
|
65
|
+
attributes = cell_attributes
|
|
66
|
+
attributes << 't' << 's'
|
|
67
|
+
@worksheet.writer.tag_elements('c', attributes) do
|
|
68
|
+
@worksheet.write_cell_value(token)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def display_url_string?
|
|
73
|
+
false
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
class FormulaCellData < CellData # :nodoc:
|
|
78
|
+
def initialize(worksheet, row, col, formula, xf, result)
|
|
79
|
+
@worksheet = worksheet
|
|
80
|
+
@row, @col, @token, @xf, @result = row, col, formula, xf, result
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def data
|
|
84
|
+
@result || 0
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def write_cell
|
|
88
|
+
attributes = cell_attributes
|
|
89
|
+
if @result && !(@result.to_s =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/)
|
|
90
|
+
attributes << 't' << 'str'
|
|
91
|
+
end
|
|
92
|
+
@worksheet.writer.tag_elements('c', attributes) do
|
|
93
|
+
@worksheet.write_cell_formula(token)
|
|
94
|
+
@worksheet.write_cell_value(result || 0)
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
class FormulaArrayCellData < CellData # :nodoc:
|
|
100
|
+
def initialize(worksheet, row, col, formula, xf, range, result)
|
|
101
|
+
@worksheet = worksheet
|
|
102
|
+
@row, @col, @token, @xf, @range, @result = row, col, formula, xf, range, result
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def data
|
|
106
|
+
@result || 0
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def write_cell
|
|
110
|
+
@worksheet.writer.tag_elements('c', cell_attributes) do
|
|
111
|
+
@worksheet.write_cell_array_formula(token, range)
|
|
112
|
+
@worksheet.write_cell_value(result)
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
class BlankCellData < CellData # :nodoc:
|
|
118
|
+
def initialize(worksheet, row, col, index, xf)
|
|
119
|
+
@worksheet = worksheet
|
|
120
|
+
@row, @col, @xf = row, col, xf
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def data
|
|
124
|
+
''
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def write_cell
|
|
128
|
+
@worksheet.writer.empty_tag('c', cell_attributes)
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
module Writexlsx
|
|
4
|
+
class Worksheet
|
|
5
|
+
class PrintStyle # :nodoc:
|
|
6
|
+
attr_accessor :margin_left, :margin_right, :margin_top, :margin_bottom # :nodoc:
|
|
7
|
+
attr_accessor :margin_header, :margin_footer # :nodoc:
|
|
8
|
+
attr_accessor :repeat_rows, :repeat_cols, :print_area # :nodoc:
|
|
9
|
+
attr_accessor :hbreaks, :vbreaks, :scale # :nodoc:
|
|
10
|
+
attr_accessor :fit_page, :fit_width, :fit_height, :page_setup_changed # :nodoc:
|
|
11
|
+
attr_accessor :across # :nodoc:
|
|
12
|
+
attr_accessor :orientation # :nodoc:
|
|
13
|
+
|
|
14
|
+
def initialize # :nodoc:
|
|
15
|
+
@margin_left = 0.7
|
|
16
|
+
@margin_right = 0.7
|
|
17
|
+
@margin_top = 0.75
|
|
18
|
+
@margin_bottom = 0.75
|
|
19
|
+
@margin_header = 0.3
|
|
20
|
+
@margin_footer = 0.3
|
|
21
|
+
@repeat_rows = ''
|
|
22
|
+
@repeat_cols = ''
|
|
23
|
+
@print_area = ''
|
|
24
|
+
@hbreaks = []
|
|
25
|
+
@vbreaks = []
|
|
26
|
+
@scale = 100
|
|
27
|
+
@fit_page = false
|
|
28
|
+
@fit_width = nil
|
|
29
|
+
@fit_height = nil
|
|
30
|
+
@page_setup_changed = false
|
|
31
|
+
@across = false
|
|
32
|
+
@orientation = true
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def attributes # :nodoc:
|
|
36
|
+
[
|
|
37
|
+
'left', @margin_left,
|
|
38
|
+
'right', @margin_right,
|
|
39
|
+
'top', @margin_top,
|
|
40
|
+
'bottom', @margin_bottom,
|
|
41
|
+
'header', @margin_header,
|
|
42
|
+
'footer', @margin_footer
|
|
43
|
+
]
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def orientation?
|
|
47
|
+
!!@orientation
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -23,7 +23,12 @@ def test_add_series_only_values
|
|
|
23
23
|
:_labels => nil,
|
|
24
24
|
:_invert_if_neg => nil,
|
|
25
25
|
:_x2_axis => nil,
|
|
26
|
-
:_y2_axis => nil
|
|
26
|
+
:_y2_axis => nil,
|
|
27
|
+
:_error_bars => {
|
|
28
|
+
:_x_error_bars => nil,
|
|
29
|
+
:_y_error_bars => nil
|
|
30
|
+
},
|
|
31
|
+
:_points => nil
|
|
27
32
|
}
|
|
28
33
|
|
|
29
34
|
@chart.add_series(:values => '=Sheet1!$A$1:$A$5')
|
|
@@ -49,7 +54,12 @@ def test_add_series_with_categories_and_values
|
|
|
49
54
|
:_labels => nil,
|
|
50
55
|
:_invert_if_neg => nil,
|
|
51
56
|
:_x2_axis => nil,
|
|
52
|
-
:_y2_axis => nil
|
|
57
|
+
:_y2_axis => nil,
|
|
58
|
+
:_error_bars => {
|
|
59
|
+
:_x_error_bars => nil,
|
|
60
|
+
:_y_error_bars => nil
|
|
61
|
+
},
|
|
62
|
+
:_points => nil
|
|
53
63
|
}
|
|
54
64
|
]
|
|
55
65
|
|
|
@@ -80,7 +90,12 @@ def test_add_series_only_values_checked_by_array
|
|
|
80
90
|
:_labels => nil,
|
|
81
91
|
:_invert_if_neg => nil,
|
|
82
92
|
:_x2_axis => nil,
|
|
83
|
-
:_y2_axis => nil
|
|
93
|
+
:_y2_axis => nil,
|
|
94
|
+
:_error_bars => {
|
|
95
|
+
:_x_error_bars => nil,
|
|
96
|
+
:_y_error_bars => nil
|
|
97
|
+
},
|
|
98
|
+
:_points => nil
|
|
84
99
|
}
|
|
85
100
|
]
|
|
86
101
|
|
|
@@ -106,8 +121,13 @@ def test_add_series_both_checked_by_array
|
|
|
106
121
|
:_labels => nil,
|
|
107
122
|
:_invert_if_neg => nil,
|
|
108
123
|
:_x2_axis => nil,
|
|
109
|
-
:_y2_axis => nil
|
|
110
|
-
|
|
124
|
+
:_y2_axis => nil,
|
|
125
|
+
:_error_bars => {
|
|
126
|
+
:_x_error_bars => nil,
|
|
127
|
+
:_y_error_bars => nil
|
|
128
|
+
},
|
|
129
|
+
:_points => nil
|
|
130
|
+
}
|
|
111
131
|
|
|
112
132
|
@chart.add_series(
|
|
113
133
|
:categories => [ 'Sheet1', 0, 4, 0, 0 ],
|
|
@@ -135,7 +155,12 @@ def test_add_series_secondary_axis
|
|
|
135
155
|
:_labels => nil,
|
|
136
156
|
:_invert_if_neg => nil,
|
|
137
157
|
:_x2_axis => 1,
|
|
138
|
-
:_y2_axis => 1
|
|
158
|
+
:_y2_axis => 1,
|
|
159
|
+
:_error_bars => {
|
|
160
|
+
:_x_error_bars => nil,
|
|
161
|
+
:_y_error_bars => nil
|
|
162
|
+
},
|
|
163
|
+
:_points => nil
|
|
139
164
|
}
|
|
140
165
|
|
|
141
166
|
@chart.add_series(
|
|
@@ -10,7 +10,7 @@ def setup
|
|
|
10
10
|
def test_write_d_lbls_value_only
|
|
11
11
|
expected = '<c:dLbls><c:showVal val="1"/></c:dLbls>'
|
|
12
12
|
|
|
13
|
-
labels = @chart.__send__(:
|
|
13
|
+
labels = @chart.__send__(:labels_properties, :value => 1)
|
|
14
14
|
@chart.__send__(:write_d_lbls, labels)
|
|
15
15
|
|
|
16
16
|
result = chart_writer_string
|
|
@@ -20,7 +20,7 @@ def test_write_d_lbls_value_only
|
|
|
20
20
|
def test_write_d_lbls_series_name_only
|
|
21
21
|
expected = '<c:dLbls><c:showSerName val="1"/></c:dLbls>'
|
|
22
22
|
|
|
23
|
-
labels = @chart.__send__(:
|
|
23
|
+
labels = @chart.__send__(:labels_properties, :series_name => 1)
|
|
24
24
|
@chart.__send__(:write_d_lbls, labels)
|
|
25
25
|
|
|
26
26
|
result = chart_writer_string
|
|
@@ -30,7 +30,7 @@ def test_write_d_lbls_series_name_only
|
|
|
30
30
|
def test_write_d_lbls_category_only
|
|
31
31
|
expected = '<c:dLbls><c:showCatName val="1"/></c:dLbls>'
|
|
32
32
|
|
|
33
|
-
labels = @chart.__send__(:
|
|
33
|
+
labels = @chart.__send__(:labels_properties, :category => 1)
|
|
34
34
|
@chart.__send__(:write_d_lbls, labels)
|
|
35
35
|
|
|
36
36
|
result = chart_writer_string
|
|
@@ -40,7 +40,7 @@ def test_write_d_lbls_category_only
|
|
|
40
40
|
def test_write_d_lbls_value_category_and_series
|
|
41
41
|
expected = '<c:dLbls><c:showVal val="1"/><c:showCatName val="1"/><c:showSerName val="1"/></c:dLbls>'
|
|
42
42
|
|
|
43
|
-
labels = @chart.__send__(:
|
|
43
|
+
labels = @chart.__send__(:labels_properties,
|
|
44
44
|
{
|
|
45
45
|
:value => 1,
|
|
46
46
|
:category => 1,
|
|
@@ -56,7 +56,7 @@ def test_write_d_lbls_value_category_and_series
|
|
|
56
56
|
def test_write_d_lbls_position_center
|
|
57
57
|
expected = '<c:dLbls><c:dLblPos val="ctr"/><c:showVal val="1"/></c:dLbls>'
|
|
58
58
|
|
|
59
|
-
labels = @chart.__send__(:
|
|
59
|
+
labels = @chart.__send__(:labels_properties,
|
|
60
60
|
{
|
|
61
61
|
:value => 1,
|
|
62
62
|
:position => 'center'
|
|
@@ -71,7 +71,7 @@ def test_write_d_lbls_position_center
|
|
|
71
71
|
def test_write_d_lbls_position_left
|
|
72
72
|
expected = '<c:dLbls><c:dLblPos val="l"/><c:showVal val="1"/></c:dLbls>'
|
|
73
73
|
|
|
74
|
-
labels = @chart.__send__(:
|
|
74
|
+
labels = @chart.__send__(:labels_properties,
|
|
75
75
|
{
|
|
76
76
|
:value => 1,
|
|
77
77
|
:position => 'left'
|
|
@@ -86,7 +86,7 @@ def test_write_d_lbls_position_left
|
|
|
86
86
|
def test_write_d_lbls_position_right
|
|
87
87
|
expected = '<c:dLbls><c:dLblPos val="r"/><c:showVal val="1"/></c:dLbls>'
|
|
88
88
|
|
|
89
|
-
labels = @chart.__send__(:
|
|
89
|
+
labels = @chart.__send__(:labels_properties,
|
|
90
90
|
{
|
|
91
91
|
:value => 1,
|
|
92
92
|
:position => 'right'
|
|
@@ -101,7 +101,7 @@ def test_write_d_lbls_position_right
|
|
|
101
101
|
def test_write_d_lbls_position_top
|
|
102
102
|
expected = '<c:dLbls><c:dLblPos val="t"/><c:showVal val="1"/></c:dLbls>'
|
|
103
103
|
|
|
104
|
-
labels = @chart.__send__(:
|
|
104
|
+
labels = @chart.__send__(:labels_properties,
|
|
105
105
|
{
|
|
106
106
|
:value => 1,
|
|
107
107
|
:position => 'top'
|
|
@@ -116,7 +116,7 @@ def test_write_d_lbls_position_top
|
|
|
116
116
|
def test_write_d_lbls_position_above
|
|
117
117
|
expected = '<c:dLbls><c:dLblPos val="t"/><c:showVal val="1"/></c:dLbls>'
|
|
118
118
|
|
|
119
|
-
labels = @chart.__send__(:
|
|
119
|
+
labels = @chart.__send__(:labels_properties,
|
|
120
120
|
{
|
|
121
121
|
:value => 1,
|
|
122
122
|
:position => 'above'
|
|
@@ -131,7 +131,7 @@ def test_write_d_lbls_position_above
|
|
|
131
131
|
def test_write_d_lbls_position_bottom
|
|
132
132
|
expected = '<c:dLbls><c:dLblPos val="b"/><c:showVal val="1"/></c:dLbls>'
|
|
133
133
|
|
|
134
|
-
labels = @chart.__send__(:
|
|
134
|
+
labels = @chart.__send__(:labels_properties,
|
|
135
135
|
{
|
|
136
136
|
:value => 1,
|
|
137
137
|
:position => 'bottom'
|
|
@@ -146,7 +146,7 @@ def test_write_d_lbls_position_bottom
|
|
|
146
146
|
def test_write_d_lbls_position_below
|
|
147
147
|
expected = '<c:dLbls><c:dLblPos val="b"/><c:showVal val="1"/></c:dLbls>'
|
|
148
148
|
|
|
149
|
-
labels = @chart.__send__(:
|
|
149
|
+
labels = @chart.__send__(:labels_properties,
|
|
150
150
|
{
|
|
151
151
|
:value => 1,
|
|
152
152
|
:position => 'below'
|
|
@@ -161,7 +161,7 @@ def test_write_d_lbls_position_below
|
|
|
161
161
|
def test_write_d_lbls_pie
|
|
162
162
|
expected = '<c:dLbls><c:showVal val="1"/><c:showLeaderLines val="1"/></c:dLbls>'
|
|
163
163
|
|
|
164
|
-
labels = @chart.__send__(:
|
|
164
|
+
labels = @chart.__send__(:labels_properties,
|
|
165
165
|
{
|
|
166
166
|
:value => 1,
|
|
167
167
|
:leader_lines => 1
|
|
@@ -176,7 +176,7 @@ def test_write_d_lbls_pie
|
|
|
176
176
|
def test_write_d_lbls_pie_position_empty
|
|
177
177
|
expected = '<c:dLbls><c:showVal val="1"/><c:showLeaderLines val="1"/></c:dLbls>'
|
|
178
178
|
|
|
179
|
-
labels = @chart.__send__(:
|
|
179
|
+
labels = @chart.__send__(:labels_properties,
|
|
180
180
|
{
|
|
181
181
|
:value => 1,
|
|
182
182
|
:leader_lines => 1,
|
|
@@ -192,7 +192,7 @@ def test_write_d_lbls_pie_position_empty
|
|
|
192
192
|
def test_write_d_lbls_pie_position_center
|
|
193
193
|
expected = '<c:dLbls><c:dLblPos val="ctr"/><c:showVal val="1"/><c:showLeaderLines val="1"/></c:dLbls>'
|
|
194
194
|
|
|
195
|
-
labels = @chart.__send__(:
|
|
195
|
+
labels = @chart.__send__(:labels_properties,
|
|
196
196
|
{
|
|
197
197
|
:value => 1,
|
|
198
198
|
:leader_lines => 1,
|
|
@@ -208,7 +208,7 @@ def test_write_d_lbls_pie_position_center
|
|
|
208
208
|
def test_write_d_lbls_pie_position_inside_end
|
|
209
209
|
expected = '<c:dLbls><c:dLblPos val="inEnd"/><c:showVal val="1"/><c:showLeaderLines val="1"/></c:dLbls>'
|
|
210
210
|
|
|
211
|
-
labels = @chart.__send__(:
|
|
211
|
+
labels = @chart.__send__(:labels_properties,
|
|
212
212
|
{
|
|
213
213
|
:value => 1,
|
|
214
214
|
:leader_lines => 1,
|
|
@@ -224,7 +224,7 @@ def test_write_d_lbls_pie_position_inside_end
|
|
|
224
224
|
def test_write_d_lbls_pie_position_outside_end
|
|
225
225
|
expected = '<c:dLbls><c:dLblPos val="outEnd"/><c:showVal val="1"/><c:showLeaderLines val="1"/></c:dLbls>'
|
|
226
226
|
|
|
227
|
-
labels = @chart.__send__(:
|
|
227
|
+
labels = @chart.__send__(:labels_properties,
|
|
228
228
|
{
|
|
229
229
|
:value => 1,
|
|
230
230
|
:leader_lines => 1,
|
|
@@ -240,7 +240,7 @@ def test_write_d_lbls_pie_position_outside_end
|
|
|
240
240
|
def test_write_d_lbls_pie_position_best_fit
|
|
241
241
|
expected = '<c:dLbls><c:dLblPos val="bestFit"/><c:showVal val="1"/><c:showLeaderLines val="1"/></c:dLbls>'
|
|
242
242
|
|
|
243
|
-
labels = @chart.__send__(:
|
|
243
|
+
labels = @chart.__send__(:labels_properties,
|
|
244
244
|
{
|
|
245
245
|
:value => 1,
|
|
246
246
|
:leader_lines => 1,
|
|
@@ -256,7 +256,7 @@ def test_write_d_lbls_pie_position_best_fit
|
|
|
256
256
|
def test_write_d_lbls_pie_percentage
|
|
257
257
|
expected = '<c:dLbls><c:showPercent val="1"/><c:showLeaderLines val="1"/></c:dLbls>'
|
|
258
258
|
|
|
259
|
-
labels = @chart.__send__(:
|
|
259
|
+
labels = @chart.__send__(:labels_properties,
|
|
260
260
|
{
|
|
261
261
|
:leader_lines => 1,
|
|
262
262
|
:percentage => 1
|
|
@@ -8,46 +8,42 @@ def setup
|
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def test_write_number_format
|
|
11
|
+
axis = Writexlsx::Chart::Axis.new
|
|
12
|
+
axis.num_format = 'General'
|
|
13
|
+
axis.defaults = { :num_format => 'General' }
|
|
14
|
+
|
|
11
15
|
expected = '<c:numFmt formatCode="General" sourceLinked="1"/>'
|
|
12
|
-
result = @chart.__send__('write_number_format',
|
|
13
|
-
{
|
|
14
|
-
:_num_format => 'General',
|
|
15
|
-
:defaults => { :num_format => 'General' }
|
|
16
|
-
}
|
|
17
|
-
)
|
|
16
|
+
result = @chart.__send__('write_number_format', axis)
|
|
18
17
|
assert_equal(expected, result)
|
|
19
18
|
end
|
|
20
19
|
|
|
21
20
|
def test_write_number_format02
|
|
21
|
+
axis = Writexlsx::Chart::Axis.new
|
|
22
|
+
axis.num_format = '#,##0.00'
|
|
23
|
+
axis.defaults = { :num_format => 'General' }
|
|
24
|
+
|
|
22
25
|
expected = '<c:numFmt formatCode="#,##0.00" sourceLinked="0"/>'
|
|
23
|
-
result = @chart.__send__('write_number_format',
|
|
24
|
-
{
|
|
25
|
-
:_num_format => '#,##0.00',
|
|
26
|
-
:_defaults => { :num_format => 'General' }
|
|
27
|
-
}
|
|
28
|
-
)
|
|
26
|
+
result = @chart.__send__('write_number_format', axis)
|
|
29
27
|
assert_equal(expected, result)
|
|
30
28
|
end
|
|
31
29
|
|
|
32
30
|
def test_write_number_format03
|
|
31
|
+
axis = Writexlsx::Chart::Axis.new
|
|
32
|
+
axis.num_format = 'General'
|
|
33
|
+
axis.defaults = { :num_format => 'General' }
|
|
34
|
+
|
|
33
35
|
expected = ''
|
|
34
|
-
result = @chart.__send__('write_cat_number_format',
|
|
35
|
-
{
|
|
36
|
-
:_num_format => 'General',
|
|
37
|
-
:_defaults => { :num_format => 'General' }
|
|
38
|
-
}
|
|
39
|
-
)
|
|
36
|
+
result = @chart.__send__('write_cat_number_format', axis)
|
|
40
37
|
assert_equal(expected, result)
|
|
41
38
|
end
|
|
42
39
|
|
|
43
40
|
def test_write_number_format04
|
|
41
|
+
axis = Writexlsx::Chart::Axis.new
|
|
42
|
+
axis.num_format = '#,##0.00'
|
|
43
|
+
axis.defaults = { :num_format => 'General' }
|
|
44
|
+
|
|
44
45
|
expected = '<c:numFmt formatCode="#,##0.00" sourceLinked="0"/>'
|
|
45
|
-
result = @chart.__send__('write_cat_number_format',
|
|
46
|
-
{
|
|
47
|
-
:_num_format => '#,##0.00',
|
|
48
|
-
:_defaults => { :num_format => 'General' }
|
|
49
|
-
}
|
|
50
|
-
)
|
|
46
|
+
result = @chart.__send__('write_cat_number_format', axis)
|
|
51
47
|
assert_equal(expected, result)
|
|
52
48
|
end
|
|
53
49
|
end
|