write_xlsx 0.90.0 → 0.97.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/Changes +37 -0
  3. data/README.md +1 -1
  4. data/examples/a_simple.rb +1 -6
  5. data/examples/conditional_format.rb +73 -46
  6. data/examples/demo.rb +1 -7
  7. data/examples/hyperlink1.rb +4 -11
  8. data/lib/write_xlsx/chart.rb +81 -205
  9. data/lib/write_xlsx/chart/axis.rb +2 -2
  10. data/lib/write_xlsx/chart/caption.rb +3 -1
  11. data/lib/write_xlsx/chart/pie.rb +2 -0
  12. data/lib/write_xlsx/chart/series.rb +11 -7
  13. data/lib/write_xlsx/format.rb +15 -11
  14. data/lib/write_xlsx/package/conditional_format.rb +351 -38
  15. data/lib/write_xlsx/package/content_types.rb +10 -0
  16. data/lib/write_xlsx/package/custom.rb +125 -0
  17. data/lib/write_xlsx/package/packager.rb +26 -0
  18. data/lib/write_xlsx/package/styles.rb +53 -21
  19. data/lib/write_xlsx/package/table.rb +11 -4
  20. data/lib/write_xlsx/utility.rb +234 -34
  21. data/lib/write_xlsx/version.rb +1 -1
  22. data/lib/write_xlsx/workbook.rb +88 -1
  23. data/lib/write_xlsx/worksheet.rb +247 -23
  24. data/test/helper.rb +6 -1
  25. data/test/regression/_test_hyperlink31.rb +26 -0
  26. data/test/regression/images/zero_dpi.jpg +0 -0
  27. data/test/regression/test_chart_bar08.rb +3 -0
  28. data/test/regression/test_chart_bar11.rb +3 -0
  29. data/test/regression/test_chart_bar14.rb +3 -0
  30. data/test/regression/test_chart_chartarea05.rb +16 -17
  31. data/test/regression/test_chart_chartarea06.rb +49 -0
  32. data/test/regression/test_chart_data_labels25.rb +61 -0
  33. data/test/regression/test_chart_format26.rb +48 -0
  34. data/test/regression/test_chart_format27.rb +58 -0
  35. data/test/regression/test_chart_format28.rb +52 -0
  36. data/test/regression/test_chart_format29.rb +59 -0
  37. data/test/regression/test_chart_format30.rb +53 -0
  38. data/test/regression/test_chart_format31.rb +60 -0
  39. data/test/regression/test_chart_table03.rb +56 -0
  40. data/test/regression/test_cond_format14.rb +42 -0
  41. data/test/regression/test_cond_format15.rb +53 -0
  42. data/test/regression/test_cond_format16.rb +53 -0
  43. data/test/regression/test_cond_format17.rb +37 -0
  44. data/test/regression/test_cond_format18.rb +136 -0
  45. data/test/regression/test_date_1904_01.rb +1 -1
  46. data/test/regression/test_escapes04.rb +3 -0
  47. data/test/regression/test_escapes05.rb +3 -0
  48. data/test/regression/test_escapes07.rb +3 -0
  49. data/test/regression/test_escapes08.rb +3 -0
  50. data/test/regression/test_hyperlink01.rb +3 -0
  51. data/test/regression/test_hyperlink02.rb +3 -0
  52. data/test/regression/test_hyperlink03.rb +4 -0
  53. data/test/regression/test_hyperlink04.rb +3 -0
  54. data/test/regression/test_hyperlink05.rb +3 -0
  55. data/test/regression/test_hyperlink06.rb +3 -0
  56. data/test/regression/test_hyperlink07.rb +3 -0
  57. data/test/regression/test_hyperlink08.rb +3 -0
  58. data/test/regression/test_hyperlink09.rb +3 -0
  59. data/test/regression/test_hyperlink10.rb +3 -0
  60. data/test/regression/test_hyperlink11.rb +3 -0
  61. data/test/regression/test_hyperlink12.rb +3 -0
  62. data/test/regression/test_hyperlink13.rb +3 -0
  63. data/test/regression/test_hyperlink14.rb +3 -0
  64. data/test/regression/test_hyperlink15.rb +3 -0
  65. data/test/regression/test_hyperlink16.rb +3 -0
  66. data/test/regression/test_hyperlink17.rb +3 -0
  67. data/test/regression/test_hyperlink18.rb +3 -0
  68. data/test/regression/test_hyperlink20.rb +3 -0
  69. data/test/regression/test_hyperlink21.rb +3 -0
  70. data/test/regression/test_hyperlink22.rb +3 -0
  71. data/test/regression/test_hyperlink23.rb +3 -0
  72. data/test/regression/test_hyperlink24.rb +3 -0
  73. data/test/regression/test_hyperlink25.rb +3 -0
  74. data/test/regression/test_hyperlink26.rb +3 -0
  75. data/test/regression/test_hyperlink27.rb +3 -0
  76. data/test/regression/test_hyperlink28.rb +50 -0
  77. data/test/regression/test_hyperlink29.rb +27 -0
  78. data/test/regression/test_hyperlink30.rb +36 -0
  79. data/test/regression/test_image35.rb +26 -0
  80. data/test/regression/test_properties01.rb +1 -4
  81. data/test/regression/test_properties02.rb +1 -4
  82. data/test/regression/test_properties03.rb +26 -0
  83. data/test/regression/test_properties04.rb +61 -0
  84. data/test/regression/test_properties05.rb +30 -0
  85. data/test/regression/test_table03.rb +3 -0
  86. data/test/regression/test_table04.rb +3 -0
  87. data/test/regression/test_table05.rb +3 -0
  88. data/test/regression/test_table06.rb +3 -0
  89. data/test/regression/test_table20.rb +34 -0
  90. data/test/regression/test_table21.rb +36 -0
  91. data/test/regression/test_table22.rb +32 -0
  92. data/test/regression/xlsx_files/chart_chartarea05.xlsx +0 -0
  93. data/test/regression/xlsx_files/chart_chartarea06.xlsx +0 -0
  94. data/test/regression/xlsx_files/chart_data_labels25.xlsx +0 -0
  95. data/test/regression/xlsx_files/chart_format26.xlsx +0 -0
  96. data/test/regression/xlsx_files/chart_format27.xlsx +0 -0
  97. data/test/regression/xlsx_files/chart_format28.xlsx +0 -0
  98. data/test/regression/xlsx_files/chart_format29.xlsx +0 -0
  99. data/test/regression/xlsx_files/chart_format30.xlsx +0 -0
  100. data/test/regression/xlsx_files/chart_format31.xlsx +0 -0
  101. data/test/regression/xlsx_files/chart_table03.xlsx +0 -0
  102. data/test/regression/xlsx_files/cond_format14.xlsx +0 -0
  103. data/test/regression/xlsx_files/cond_format15.xlsx +0 -0
  104. data/test/regression/xlsx_files/cond_format16.xlsx +0 -0
  105. data/test/regression/xlsx_files/cond_format17.xlsx +0 -0
  106. data/test/regression/xlsx_files/cond_format18.xlsx +0 -0
  107. data/test/regression/xlsx_files/date_1904_01.xlsx +0 -0
  108. data/test/regression/xlsx_files/hyperlink28.xlsx +0 -0
  109. data/test/regression/xlsx_files/hyperlink29.xlsx +0 -0
  110. data/test/regression/xlsx_files/hyperlink30.xlsx +0 -0
  111. data/test/regression/xlsx_files/hyperlink31.xlsx +0 -0
  112. data/test/regression/xlsx_files/image35.xlsx +0 -0
  113. data/test/regression/xlsx_files/properties03.xlsx +0 -0
  114. data/test/regression/xlsx_files/properties04.xlsx +0 -0
  115. data/test/regression/xlsx_files/properties05.xlsx +0 -0
  116. data/test/regression/xlsx_files/table21.xlsx +0 -0
  117. data/test/regression/xlsx_files/table22.xlsx +0 -0
  118. data/test/workbook/test_write_workbook_view.rb +81 -0
  119. data/test/worksheet/test_cond_format_22.rb +266 -0
  120. data/test/worksheet/test_cond_format_23.rb +242 -0
  121. data/test/worksheet/test_cond_format_24.rb +303 -0
  122. data/test/worksheet/test_data_bar_01.rb +53 -0
  123. data/test/worksheet/test_data_bar_02.rb +79 -0
  124. data/test/worksheet/test_data_bar_03.rb +147 -0
  125. data/test/worksheet/test_data_bar_04.rb +145 -0
  126. data/test/worksheet/test_data_bar_05.rb +147 -0
  127. data/test/worksheet/test_data_bar_06.rb +145 -0
  128. data/test/worksheet/test_data_bar_07.rb +146 -0
  129. data/test/worksheet/test_data_bar_08.rb +54 -0
  130. data/test/worksheet/test_data_bar_09.rb +80 -0
  131. data/test/worksheet/test_data_bar_10.rb +165 -0
  132. data/test/worksheet/test_data_bar_11.rb +167 -0
  133. data/test/worksheet/test_data_bar_12.rb +104 -0
  134. data/test/worksheet/test_write_data_validation_02.rb +27 -0
  135. metadata +135 -2
@@ -0,0 +1,266 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestCondFormat22 < Minitest::Test
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ ###############################################################################
13
+ #
14
+ # Tests for Excel::Writer::XLSX::Worksheet methods.
15
+ #
16
+
17
+ ###############################################################################
18
+ #
19
+ # Test the _assemble_xml_file() method.
20
+ #
21
+ # Test conditional formats.
22
+ #
23
+ def test_conditional_formats
24
+ @worksheet.select
25
+
26
+ # Start test code.
27
+ @worksheet.write('A1', 1)
28
+ @worksheet.write('A2', 2)
29
+ @worksheet.write('A3', 3)
30
+ @worksheet.write('A4', 4)
31
+ @worksheet.write('A5', 5)
32
+ @worksheet.write('A6', 6)
33
+ @worksheet.write('A7', 7)
34
+ @worksheet.write('A8', 8)
35
+ @worksheet.write('A9', 9)
36
+
37
+ @worksheet.conditional_formatting(
38
+ 'A1',
39
+ {
40
+ :type => 'icon_set',
41
+ :icon_style => '3_arrows'
42
+ }
43
+ )
44
+
45
+ @worksheet.conditional_formatting(
46
+ 'A2',
47
+ {
48
+ :type => 'icon_set',
49
+ :icon_style => '3_flags'
50
+ }
51
+ )
52
+
53
+ @worksheet.conditional_formatting(
54
+ 'A3',
55
+ {
56
+ :type => 'icon_set',
57
+ :icon_style => '3_traffic_lights_rimmed'
58
+ }
59
+ )
60
+
61
+ @worksheet.conditional_formatting(
62
+ 'A4',
63
+ {
64
+ :type => 'icon_set',
65
+ :icon_style => '3_symbols_circled'
66
+ }
67
+ )
68
+
69
+ @worksheet.conditional_formatting(
70
+ 'A5',
71
+ {
72
+ :type => 'icon_set',
73
+ :icon_style => '4_arrows'
74
+ }
75
+ )
76
+
77
+ @worksheet.conditional_formatting(
78
+ 'A6',
79
+ {
80
+ :type => 'icon_set',
81
+ :icon_style => '4_red_to_black'
82
+ }
83
+ )
84
+
85
+ @worksheet.conditional_formatting(
86
+ 'A7',
87
+ {
88
+ :type => 'icon_set',
89
+ :icon_style => '4_traffic_lights'
90
+ }
91
+ )
92
+
93
+ @worksheet.conditional_formatting(
94
+ 'A8',
95
+ {
96
+ :type => 'icon_set',
97
+ :icon_style => '5_arrows_gray'
98
+ }
99
+ )
100
+
101
+ @worksheet.conditional_formatting(
102
+ 'A9',
103
+ {
104
+ :type => 'icon_set',
105
+ :icon_style => '5_quarters'
106
+ }
107
+ )
108
+
109
+ # End test code.
110
+
111
+ @worksheet.assemble_xml_file
112
+ result = got_to_array(@worksheet.instance_variable_get(:@writer).string)
113
+
114
+ expected = expected_to_array(expected_xml)
115
+ assert_equal(expected, result)
116
+ end
117
+
118
+ def expected_xml
119
+ <<EOS
120
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
121
+ <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
122
+ <dimension ref="A1:A9"/>
123
+ <sheetViews>
124
+ <sheetView tabSelected="1" workbookViewId="0"/>
125
+ </sheetViews>
126
+ <sheetFormatPr defaultRowHeight="15"/>
127
+ <sheetData>
128
+ <row r="1" spans="1:1">
129
+ <c r="A1">
130
+ <v>1</v>
131
+ </c>
132
+ </row>
133
+ <row r="2" spans="1:1">
134
+ <c r="A2">
135
+ <v>2</v>
136
+ </c>
137
+ </row>
138
+ <row r="3" spans="1:1">
139
+ <c r="A3">
140
+ <v>3</v>
141
+ </c>
142
+ </row>
143
+ <row r="4" spans="1:1">
144
+ <c r="A4">
145
+ <v>4</v>
146
+ </c>
147
+ </row>
148
+ <row r="5" spans="1:1">
149
+ <c r="A5">
150
+ <v>5</v>
151
+ </c>
152
+ </row>
153
+ <row r="6" spans="1:1">
154
+ <c r="A6">
155
+ <v>6</v>
156
+ </c>
157
+ </row>
158
+ <row r="7" spans="1:1">
159
+ <c r="A7">
160
+ <v>7</v>
161
+ </c>
162
+ </row>
163
+ <row r="8" spans="1:1">
164
+ <c r="A8">
165
+ <v>8</v>
166
+ </c>
167
+ </row>
168
+ <row r="9" spans="1:1">
169
+ <c r="A9">
170
+ <v>9</v>
171
+ </c>
172
+ </row>
173
+ </sheetData>
174
+ <conditionalFormatting sqref="A1">
175
+ <cfRule type="iconSet" priority="1">
176
+ <iconSet iconSet="3Arrows">
177
+ <cfvo type="percent" val="0"/>
178
+ <cfvo type="percent" val="33"/>
179
+ <cfvo type="percent" val="67"/>
180
+ </iconSet>
181
+ </cfRule>
182
+ </conditionalFormatting>
183
+ <conditionalFormatting sqref="A2">
184
+ <cfRule type="iconSet" priority="2">
185
+ <iconSet iconSet="3Flags">
186
+ <cfvo type="percent" val="0"/>
187
+ <cfvo type="percent" val="33"/>
188
+ <cfvo type="percent" val="67"/>
189
+ </iconSet>
190
+ </cfRule>
191
+ </conditionalFormatting>
192
+ <conditionalFormatting sqref="A3">
193
+ <cfRule type="iconSet" priority="3">
194
+ <iconSet iconSet="3TrafficLights2">
195
+ <cfvo type="percent" val="0"/>
196
+ <cfvo type="percent" val="33"/>
197
+ <cfvo type="percent" val="67"/>
198
+ </iconSet>
199
+ </cfRule>
200
+ </conditionalFormatting>
201
+ <conditionalFormatting sqref="A4">
202
+ <cfRule type="iconSet" priority="4">
203
+ <iconSet iconSet="3Symbols">
204
+ <cfvo type="percent" val="0"/>
205
+ <cfvo type="percent" val="33"/>
206
+ <cfvo type="percent" val="67"/>
207
+ </iconSet>
208
+ </cfRule>
209
+ </conditionalFormatting>
210
+ <conditionalFormatting sqref="A5">
211
+ <cfRule type="iconSet" priority="5">
212
+ <iconSet iconSet="4Arrows">
213
+ <cfvo type="percent" val="0"/>
214
+ <cfvo type="percent" val="25"/>
215
+ <cfvo type="percent" val="50"/>
216
+ <cfvo type="percent" val="75"/>
217
+ </iconSet>
218
+ </cfRule>
219
+ </conditionalFormatting>
220
+ <conditionalFormatting sqref="A6">
221
+ <cfRule type="iconSet" priority="6">
222
+ <iconSet iconSet="4RedToBlack">
223
+ <cfvo type="percent" val="0"/>
224
+ <cfvo type="percent" val="25"/>
225
+ <cfvo type="percent" val="50"/>
226
+ <cfvo type="percent" val="75"/>
227
+ </iconSet>
228
+ </cfRule>
229
+ </conditionalFormatting>
230
+ <conditionalFormatting sqref="A7">
231
+ <cfRule type="iconSet" priority="7">
232
+ <iconSet iconSet="4TrafficLights">
233
+ <cfvo type="percent" val="0"/>
234
+ <cfvo type="percent" val="25"/>
235
+ <cfvo type="percent" val="50"/>
236
+ <cfvo type="percent" val="75"/>
237
+ </iconSet>
238
+ </cfRule>
239
+ </conditionalFormatting>
240
+ <conditionalFormatting sqref="A8">
241
+ <cfRule type="iconSet" priority="8">
242
+ <iconSet iconSet="5ArrowsGray">
243
+ <cfvo type="percent" val="0"/>
244
+ <cfvo type="percent" val="20"/>
245
+ <cfvo type="percent" val="40"/>
246
+ <cfvo type="percent" val="60"/>
247
+ <cfvo type="percent" val="80"/>
248
+ </iconSet>
249
+ </cfRule>
250
+ </conditionalFormatting>
251
+ <conditionalFormatting sqref="A9">
252
+ <cfRule type="iconSet" priority="9">
253
+ <iconSet iconSet="5Quarters">
254
+ <cfvo type="percent" val="0"/>
255
+ <cfvo type="percent" val="20"/>
256
+ <cfvo type="percent" val="40"/>
257
+ <cfvo type="percent" val="60"/>
258
+ <cfvo type="percent" val="80"/>
259
+ </iconSet>
260
+ </cfRule>
261
+ </conditionalFormatting>
262
+ <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
263
+ </worksheet>
264
+ EOS
265
+ end
266
+ end
@@ -0,0 +1,242 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestCondFormat23 < Minitest::Test
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ ###############################################################################
13
+ #
14
+ # Tests for Excel::Writer::XLSX::Worksheet methods.
15
+ #
16
+
17
+ ###############################################################################
18
+ #
19
+ # Test the _assemble_xml_file() method.
20
+ #
21
+ # Test conditional formats.
22
+ #
23
+ def test_conditional_formats
24
+ @worksheet.select
25
+
26
+ # Start test code.
27
+ @worksheet.write('A1', 1)
28
+ @worksheet.write('A2', 2)
29
+ @worksheet.write('A3', 3)
30
+ @worksheet.write('A4', 4)
31
+ @worksheet.write('A5', 5)
32
+ @worksheet.write('A6', 6)
33
+ @worksheet.write('A7', 7)
34
+ @worksheet.write('A8', 8)
35
+
36
+ @worksheet.conditional_formatting(
37
+ 'A1',
38
+ {
39
+ :type => 'icon_set',
40
+ :icon_style => '3_arrows_gray'
41
+ }
42
+ )
43
+
44
+ @worksheet.conditional_formatting(
45
+ 'A2',
46
+ {
47
+ :type => 'icon_set',
48
+ :icon_style => '3_traffic_lights'
49
+ }
50
+ )
51
+
52
+ @worksheet.conditional_formatting(
53
+ 'A3',
54
+ {
55
+ :type => 'icon_set',
56
+ :icon_style => '3_signs'
57
+ }
58
+ )
59
+
60
+ @worksheet.conditional_formatting(
61
+ 'A4',
62
+ {
63
+ :type => 'icon_set',
64
+ :icon_style => '3_symbols'
65
+ }
66
+ )
67
+
68
+ @worksheet.conditional_formatting(
69
+ 'A5',
70
+ {
71
+ :type => 'icon_set',
72
+ :icon_style => '4_arrows_gray'
73
+ }
74
+ )
75
+
76
+ @worksheet.conditional_formatting(
77
+ 'A6',
78
+ {
79
+ :type => 'icon_set',
80
+ :icon_style => '4_ratings'
81
+ }
82
+ )
83
+
84
+ @worksheet.conditional_formatting(
85
+ 'A7',
86
+ {
87
+ :type => 'icon_set',
88
+ :icon_style => '5_arrows'
89
+ }
90
+ )
91
+
92
+ @worksheet.conditional_formatting(
93
+ 'A8',
94
+ {
95
+ :type => 'icon_set',
96
+ :icon_style => '5_ratings'
97
+ }
98
+ )
99
+
100
+ # End test code.
101
+
102
+ @worksheet.assemble_xml_file
103
+ result = got_to_array(@worksheet.instance_variable_get(:@writer).string)
104
+
105
+ expected = expected_to_array(expected_xml)
106
+ assert_equal(expected, result)
107
+ end
108
+
109
+ def expected_xml
110
+ <<EOS
111
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
112
+ <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
113
+ <dimension ref="A1:A8"/>
114
+ <sheetViews>
115
+ <sheetView tabSelected="1" workbookViewId="0"/>
116
+ </sheetViews>
117
+ <sheetFormatPr defaultRowHeight="15"/>
118
+ <sheetData>
119
+ <row r="1" spans="1:1">
120
+ <c r="A1">
121
+ <v>1</v>
122
+ </c>
123
+ </row>
124
+ <row r="2" spans="1:1">
125
+ <c r="A2">
126
+ <v>2</v>
127
+ </c>
128
+ </row>
129
+ <row r="3" spans="1:1">
130
+ <c r="A3">
131
+ <v>3</v>
132
+ </c>
133
+ </row>
134
+ <row r="4" spans="1:1">
135
+ <c r="A4">
136
+ <v>4</v>
137
+ </c>
138
+ </row>
139
+ <row r="5" spans="1:1">
140
+ <c r="A5">
141
+ <v>5</v>
142
+ </c>
143
+ </row>
144
+ <row r="6" spans="1:1">
145
+ <c r="A6">
146
+ <v>6</v>
147
+ </c>
148
+ </row>
149
+ <row r="7" spans="1:1">
150
+ <c r="A7">
151
+ <v>7</v>
152
+ </c>
153
+ </row>
154
+ <row r="8" spans="1:1">
155
+ <c r="A8">
156
+ <v>8</v>
157
+ </c>
158
+ </row>
159
+ </sheetData>
160
+ <conditionalFormatting sqref="A1">
161
+ <cfRule type="iconSet" priority="1">
162
+ <iconSet iconSet="3ArrowsGray">
163
+ <cfvo type="percent" val="0"/>
164
+ <cfvo type="percent" val="33"/>
165
+ <cfvo type="percent" val="67"/>
166
+ </iconSet>
167
+ </cfRule>
168
+ </conditionalFormatting>
169
+ <conditionalFormatting sqref="A2">
170
+ <cfRule type="iconSet" priority="2">
171
+ <iconSet>
172
+ <cfvo type="percent" val="0"/>
173
+ <cfvo type="percent" val="33"/>
174
+ <cfvo type="percent" val="67"/>
175
+ </iconSet>
176
+ </cfRule>
177
+ </conditionalFormatting>
178
+ <conditionalFormatting sqref="A3">
179
+ <cfRule type="iconSet" priority="3">
180
+ <iconSet iconSet="3Signs">
181
+ <cfvo type="percent" val="0"/>
182
+ <cfvo type="percent" val="33"/>
183
+ <cfvo type="percent" val="67"/>
184
+ </iconSet>
185
+ </cfRule>
186
+ </conditionalFormatting>
187
+ <conditionalFormatting sqref="A4">
188
+ <cfRule type="iconSet" priority="4">
189
+ <iconSet iconSet="3Symbols2">
190
+ <cfvo type="percent" val="0"/>
191
+ <cfvo type="percent" val="33"/>
192
+ <cfvo type="percent" val="67"/>
193
+ </iconSet>
194
+ </cfRule>
195
+ </conditionalFormatting>
196
+ <conditionalFormatting sqref="A5">
197
+ <cfRule type="iconSet" priority="5">
198
+ <iconSet iconSet="4ArrowsGray">
199
+ <cfvo type="percent" val="0"/>
200
+ <cfvo type="percent" val="25"/>
201
+ <cfvo type="percent" val="50"/>
202
+ <cfvo type="percent" val="75"/>
203
+ </iconSet>
204
+ </cfRule>
205
+ </conditionalFormatting>
206
+ <conditionalFormatting sqref="A6">
207
+ <cfRule type="iconSet" priority="6">
208
+ <iconSet iconSet="4Rating">
209
+ <cfvo type="percent" val="0"/>
210
+ <cfvo type="percent" val="25"/>
211
+ <cfvo type="percent" val="50"/>
212
+ <cfvo type="percent" val="75"/>
213
+ </iconSet>
214
+ </cfRule>
215
+ </conditionalFormatting>
216
+ <conditionalFormatting sqref="A7">
217
+ <cfRule type="iconSet" priority="7">
218
+ <iconSet iconSet="5Arrows">
219
+ <cfvo type="percent" val="0"/>
220
+ <cfvo type="percent" val="20"/>
221
+ <cfvo type="percent" val="40"/>
222
+ <cfvo type="percent" val="60"/>
223
+ <cfvo type="percent" val="80"/>
224
+ </iconSet>
225
+ </cfRule>
226
+ </conditionalFormatting>
227
+ <conditionalFormatting sqref="A8">
228
+ <cfRule type="iconSet" priority="8">
229
+ <iconSet iconSet="5Rating">
230
+ <cfvo type="percent" val="0"/>
231
+ <cfvo type="percent" val="20"/>
232
+ <cfvo type="percent" val="40"/>
233
+ <cfvo type="percent" val="60"/>
234
+ <cfvo type="percent" val="80"/>
235
+ </iconSet>
236
+ </cfRule>
237
+ </conditionalFormatting>
238
+ <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
239
+ </worksheet>
240
+ EOS
241
+ end
242
+ end