caxlsx 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/examples/generate.rb +3 -1
  4. data/lib/axlsx/content_type/abstract_content_type.rb +4 -1
  5. data/lib/axlsx/content_type/content_type.rb +1 -1
  6. data/lib/axlsx/content_type/default.rb +4 -1
  7. data/lib/axlsx/content_type/override.rb +4 -1
  8. data/lib/axlsx/doc_props/app.rb +91 -24
  9. data/lib/axlsx/drawing/area_series.rb +8 -2
  10. data/lib/axlsx/drawing/axis.rb +24 -6
  11. data/lib/axlsx/drawing/bar_series.rb +12 -3
  12. data/lib/axlsx/drawing/cat_axis.rb +20 -5
  13. data/lib/axlsx/drawing/chart.rb +32 -8
  14. data/lib/axlsx/drawing/d_lbls.rb +4 -4
  15. data/lib/axlsx/drawing/drawing.rb +1 -0
  16. data/lib/axlsx/drawing/hyperlink.rb +12 -3
  17. data/lib/axlsx/drawing/line_series.rb +8 -2
  18. data/lib/axlsx/drawing/marker.rb +19 -4
  19. data/lib/axlsx/drawing/one_cell_anchor.rb +8 -2
  20. data/lib/axlsx/drawing/pic.rb +13 -4
  21. data/lib/axlsx/drawing/pie_3D_chart.rb +1 -1
  22. data/lib/axlsx/drawing/pie_chart.rb +36 -0
  23. data/lib/axlsx/drawing/pie_series.rb +16 -4
  24. data/lib/axlsx/drawing/scaling.rb +18 -4
  25. data/lib/axlsx/drawing/ser_axis.rb +8 -2
  26. data/lib/axlsx/drawing/series.rb +8 -2
  27. data/lib/axlsx/drawing/view_3D.rb +8 -2
  28. data/lib/axlsx/package.rb +4 -1
  29. data/lib/axlsx/rels/relationship.rb +13 -3
  30. data/lib/axlsx/rels/relationships.rb +1 -1
  31. data/lib/axlsx/stylesheet/border.rb +12 -3
  32. data/lib/axlsx/stylesheet/border_pr.rb +14 -3
  33. data/lib/axlsx/stylesheet/cell_alignment.rb +38 -9
  34. data/lib/axlsx/stylesheet/cell_protection.rb +9 -2
  35. data/lib/axlsx/stylesheet/cell_style.rb +29 -6
  36. data/lib/axlsx/stylesheet/color.rb +8 -2
  37. data/lib/axlsx/stylesheet/dxf.rb +29 -6
  38. data/lib/axlsx/stylesheet/fill.rb +4 -1
  39. data/lib/axlsx/stylesheet/font.rb +58 -12
  40. data/lib/axlsx/stylesheet/gradient_fill.rb +8 -2
  41. data/lib/axlsx/stylesheet/gradient_stop.rb +9 -2
  42. data/lib/axlsx/stylesheet/num_fmt.rb +8 -2
  43. data/lib/axlsx/stylesheet/pattern_fill.rb +14 -3
  44. data/lib/axlsx/stylesheet/styles.rb +57 -13
  45. data/lib/axlsx/stylesheet/table_style.rb +15 -4
  46. data/lib/axlsx/stylesheet/table_style_element.rb +12 -3
  47. data/lib/axlsx/stylesheet/table_styles.rb +10 -3
  48. data/lib/axlsx/stylesheet/xf.rb +68 -15
  49. data/lib/axlsx/util/accessors.rb +8 -6
  50. data/lib/axlsx/util/storage.rb +1 -1
  51. data/lib/axlsx/version.rb +1 -1
  52. data/lib/axlsx/workbook/defined_names.rb +1 -1
  53. data/lib/axlsx/workbook/workbook.rb +19 -6
  54. data/lib/axlsx/workbook/workbook_views.rb +1 -1
  55. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +4 -2
  56. data/lib/axlsx/workbook/worksheet/cell.rb +30 -10
  57. data/lib/axlsx/workbook/worksheet/cfvo.rb +8 -2
  58. data/lib/axlsx/workbook/worksheet/col_breaks.rb +1 -1
  59. data/lib/axlsx/workbook/worksheet/cols.rb +1 -1
  60. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +8 -2
  61. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +69 -14
  62. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +1 -1
  63. data/lib/axlsx/workbook/worksheet/data_validation.rb +52 -13
  64. data/lib/axlsx/workbook/worksheet/data_validations.rb +1 -1
  65. data/lib/axlsx/workbook/worksheet/icon_set.rb +16 -4
  66. data/lib/axlsx/workbook/worksheet/merged_cells.rb +1 -1
  67. data/lib/axlsx/workbook/worksheet/page_margins.rb +30 -7
  68. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +1 -2
  69. data/lib/axlsx/workbook/worksheet/page_setup.rb +30 -7
  70. data/lib/axlsx/workbook/worksheet/pane.rb +8 -2
  71. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +1 -1
  72. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +1 -1
  73. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +30 -10
  74. data/lib/axlsx/workbook/worksheet/row.rb +5 -2
  75. data/lib/axlsx/workbook/worksheet/row_breaks.rb +1 -1
  76. data/lib/axlsx/workbook/worksheet/selection.rb +8 -2
  77. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +1 -1
  78. data/lib/axlsx/workbook/worksheet/sheet_view.rb +30 -9
  79. data/lib/axlsx/workbook/worksheet/table_style_info.rb +1 -1
  80. data/lib/axlsx/workbook/worksheet/tables.rb +1 -1
  81. data/lib/axlsx/workbook/worksheet/worksheet.rb +18 -2
  82. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +1 -1
  83. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +1 -1
  84. metadata +6 -44
@@ -155,33 +155,88 @@ module Axlsx
155
155
  end
156
156
 
157
157
  # @see type
158
- def type=(v); Axlsx.validate_conditional_formatting_type(v); @type = v end
158
+ def type=(v)
159
+ Axlsx.validate_conditional_formatting_type(v)
160
+ @type = v
161
+ end
162
+
159
163
  # @see aboveAverage
160
- def aboveAverage=(v); Axlsx.validate_boolean(v); @aboveAverage = v end
164
+ def aboveAverage=(v)
165
+ Axlsx.validate_boolean(v)
166
+ @aboveAverage = v
167
+ end
168
+
161
169
  # @see bottom
162
- def bottom=(v); Axlsx.validate_boolean(v); @bottom = v end
170
+ def bottom=(v)
171
+ Axlsx.validate_boolean(v)
172
+ @bottom = v
173
+ end
174
+
163
175
  # @see dxfId
164
- def dxfId=(v); Axlsx.validate_unsigned_numeric(v); @dxfId = v end
176
+ def dxfId=(v)
177
+ Axlsx.validate_unsigned_numeric(v)
178
+ @dxfId = v
179
+ end
180
+
165
181
  # @see equalAverage
166
- def equalAverage=(v); Axlsx.validate_boolean(v); @equalAverage = v end
182
+ def equalAverage=(v)
183
+ Axlsx.validate_boolean(v)
184
+ @equalAverage = v
185
+ end
186
+
167
187
  # @see priority
168
- def priority=(v); Axlsx.validate_unsigned_numeric(v); @priority = v end
188
+ def priority=(v)
189
+ Axlsx.validate_unsigned_numeric(v)
190
+ @priority = v
191
+ end
192
+
169
193
  # @see operator
170
- def operator=(v); Axlsx.validate_conditional_formatting_operator(v); @operator = v end
194
+ def operator=(v)
195
+ Axlsx.validate_conditional_formatting_operator(v)
196
+ @operator = v
197
+ end
198
+
171
199
  # @see text
172
- def text=(v); Axlsx.validate_string(v); @text = v end
200
+ def text=(v)
201
+ Axlsx.validate_string(v)
202
+ @text = v
203
+ end
204
+
173
205
  # @see percent
174
- def percent=(v); Axlsx.validate_boolean(v); @percent = v end
206
+ def percent=(v)
207
+ Axlsx.validate_boolean(v)
208
+ @percent = v
209
+ end
210
+
175
211
  # @see rank
176
- def rank=(v); Axlsx.validate_unsigned_numeric(v); @rank = v end
212
+ def rank=(v)
213
+ Axlsx.validate_unsigned_numeric(v)
214
+ @rank = v
215
+ end
216
+
177
217
  # @see stdDev
178
- def stdDev=(v); Axlsx.validate_unsigned_numeric(v); @stdDev = v end
218
+ def stdDev=(v)
219
+ Axlsx.validate_unsigned_numeric(v)
220
+ @stdDev = v
221
+ end
222
+
179
223
  # @see stopIfTrue
180
- def stopIfTrue=(v); Axlsx.validate_boolean(v); @stopIfTrue = v end
224
+ def stopIfTrue=(v)
225
+ Axlsx.validate_boolean(v)
226
+ @stopIfTrue = v
227
+ end
228
+
181
229
  # @see timePeriod
182
- def timePeriod=(v); Axlsx.validate_time_period_type(v); @timePeriod = v end
230
+ def timePeriod=(v)
231
+ Axlsx.validate_time_period_type(v)
232
+ @timePeriod = v
233
+ end
234
+
183
235
  # @see formula
184
- def formula=(v); [*v].each { |x| Axlsx.validate_string(x) }; @formula = [*v].map { |form| ::CGI.escapeHTML(form) } end
236
+ def formula=(v)
237
+ [*v].each { |x| Axlsx.validate_string(x) }
238
+ @formula = [*v].map { |form| ::CGI.escapeHTML(form) }
239
+ end
185
240
 
186
241
  # @see color_scale
187
242
  def color_scale=(v)
@@ -7,7 +7,7 @@ module Axlsx
7
7
  def initialize(worksheet)
8
8
  raise ArgumentError, "you must provide a worksheet" unless worksheet.is_a?(Worksheet)
9
9
 
10
- super ConditionalFormatting
10
+ super(ConditionalFormatting)
11
11
  @worksheet = worksheet
12
12
  end
13
13
 
@@ -178,31 +178,58 @@ module Axlsx
178
178
  attr_reader :type
179
179
 
180
180
  # @see formula1
181
- def formula1=(v); Axlsx.validate_string(v); @formula1 = v end
181
+ def formula1=(v)
182
+ Axlsx.validate_string(v)
183
+ @formula1 = v
184
+ end
182
185
 
183
186
  # @see formula2
184
- def formula2=(v); Axlsx.validate_string(v); @formula2 = v end
187
+ def formula2=(v)
188
+ Axlsx.validate_string(v)
189
+ @formula2 = v
190
+ end
185
191
 
186
192
  # @see allowBlank
187
- def allowBlank=(v); Axlsx.validate_boolean(v); @allowBlank = v end
193
+ def allowBlank=(v)
194
+ Axlsx.validate_boolean(v)
195
+ @allowBlank = v
196
+ end
188
197
 
189
198
  # @see error
190
- def error=(v); Axlsx.validate_string(v); @error = v end
199
+ def error=(v)
200
+ Axlsx.validate_string(v)
201
+ @error = v
202
+ end
191
203
 
192
204
  # @see errorStyle
193
- def errorStyle=(v); Axlsx.validate_data_validation_error_style(v); @errorStyle = v end
205
+ def errorStyle=(v)
206
+ Axlsx.validate_data_validation_error_style(v)
207
+ @errorStyle = v
208
+ end
194
209
 
195
210
  # @see errorTitle
196
- def errorTitle=(v); Axlsx.validate_string(v); @errorTitle = v end
211
+ def errorTitle=(v)
212
+ Axlsx.validate_string(v)
213
+ @errorTitle = v
214
+ end
197
215
 
198
216
  # @see operator
199
- def operator=(v); Axlsx.validate_data_validation_operator(v); @operator = v end
217
+ def operator=(v)
218
+ Axlsx.validate_data_validation_operator(v)
219
+ @operator = v
220
+ end
200
221
 
201
222
  # @see prompt
202
- def prompt=(v); Axlsx.validate_string(v); @prompt = v end
223
+ def prompt=(v)
224
+ Axlsx.validate_string(v)
225
+ @prompt = v
226
+ end
203
227
 
204
228
  # @see promptTitle
205
- def promptTitle=(v); Axlsx.validate_string(v); @promptTitle = v end
229
+ def promptTitle=(v)
230
+ Axlsx.validate_string(v)
231
+ @promptTitle = v
232
+ end
206
233
 
207
234
  # @see showDropDown
208
235
  def showDropDown=(v)
@@ -219,16 +246,28 @@ module Axlsx
219
246
  end
220
247
 
221
248
  # @see showErrorMessage
222
- def showErrorMessage=(v); Axlsx.validate_boolean(v); @showErrorMessage = v end
249
+ def showErrorMessage=(v)
250
+ Axlsx.validate_boolean(v)
251
+ @showErrorMessage = v
252
+ end
223
253
 
224
254
  # @see showInputMessage
225
- def showInputMessage=(v); Axlsx.validate_boolean(v); @showInputMessage = v end
255
+ def showInputMessage=(v)
256
+ Axlsx.validate_boolean(v)
257
+ @showInputMessage = v
258
+ end
226
259
 
227
260
  # @see sqref
228
- def sqref=(v); Axlsx.validate_string(v); @sqref = v end
261
+ def sqref=(v)
262
+ Axlsx.validate_string(v)
263
+ @sqref = v
264
+ end
229
265
 
230
266
  # @see type
231
- def type=(v); Axlsx.validate_data_validation_type(v); @type = v end
267
+ def type=(v)
268
+ Axlsx.validate_data_validation_type(v)
269
+ @type = v
270
+ end
232
271
 
233
272
  # Serializes the data validation
234
273
  # @param [String] str
@@ -7,7 +7,7 @@ module Axlsx
7
7
  def initialize(worksheet)
8
8
  raise ArgumentError, "you must provide a worksheet" unless worksheet.is_a?(Worksheet)
9
9
 
10
- super DataValidation
10
+ super(DataValidation)
11
11
  @worksheet = worksheet
12
12
  end
13
13
 
@@ -56,7 +56,10 @@ module Axlsx
56
56
  attr_reader :interpolationPoints
57
57
 
58
58
  # @see iconSet
59
- def iconSet=(v); Axlsx.validate_icon_set(v); @iconSet = v end
59
+ def iconSet=(v)
60
+ Axlsx.validate_icon_set(v)
61
+ @iconSet = v
62
+ end
60
63
 
61
64
  # @see interpolationPoints
62
65
  def interpolationPoints=(v)
@@ -66,13 +69,22 @@ module Axlsx
66
69
  end
67
70
 
68
71
  # @see showValue
69
- def showValue=(v); Axlsx.validate_boolean(v); @showValue = v end
72
+ def showValue=(v)
73
+ Axlsx.validate_boolean(v)
74
+ @showValue = v
75
+ end
70
76
 
71
77
  # @see percent
72
- def percent=(v); Axlsx.validate_boolean(v); @percent = v end
78
+ def percent=(v)
79
+ Axlsx.validate_boolean(v)
80
+ @percent = v
81
+ end
73
82
 
74
83
  # @see reverse
75
- def reverse=(v); Axlsx.validate_boolean(v); @reverse = v end
84
+ def reverse=(v)
85
+ Axlsx.validate_boolean(v)
86
+ @reverse = v
87
+ end
76
88
 
77
89
  # Serialize this object to an xml string
78
90
  # @param [String] str
@@ -8,7 +8,7 @@ module Axlsx
8
8
  def initialize(worksheet)
9
9
  raise ArgumentError, 'you must provide a worksheet' unless worksheet.is_a?(Worksheet)
10
10
 
11
- super String
11
+ super(String)
12
12
  end
13
13
 
14
14
  # adds cells to the merged cells collection
@@ -73,22 +73,45 @@ module Axlsx
73
73
  margins.select do |k, v|
74
74
  next unless MARGIN_KEYS.include? k
75
75
 
76
- send("#{k}=", v)
76
+ send(:"#{k}=", v)
77
77
  end
78
78
  end
79
79
 
80
80
  # @see left
81
- def left=(v); Axlsx.validate_unsigned_numeric(v); @left = v end
81
+ def left=(v)
82
+ Axlsx.validate_unsigned_numeric(v)
83
+ @left = v
84
+ end
85
+
82
86
  # @see right
83
- def right=(v); Axlsx.validate_unsigned_numeric(v); @right = v end
87
+ def right=(v)
88
+ Axlsx.validate_unsigned_numeric(v)
89
+ @right = v
90
+ end
91
+
84
92
  # @see top
85
- def top=(v); Axlsx.validate_unsigned_numeric(v); @top = v end
93
+ def top=(v)
94
+ Axlsx.validate_unsigned_numeric(v)
95
+ @top = v
96
+ end
97
+
86
98
  # @see bottom
87
- def bottom=(v); Axlsx.validate_unsigned_numeric(v); @bottom = v end
99
+ def bottom=(v)
100
+ Axlsx.validate_unsigned_numeric(v)
101
+ @bottom = v
102
+ end
103
+
88
104
  # @see header
89
- def header=(v); Axlsx.validate_unsigned_numeric(v); @header = v end
105
+ def header=(v)
106
+ Axlsx.validate_unsigned_numeric(v)
107
+ @header = v
108
+ end
109
+
90
110
  # @see footer
91
- def footer=(v); Axlsx.validate_unsigned_numeric(v); @footer = v end
111
+ def footer=(v)
112
+ Axlsx.validate_unsigned_numeric(v)
113
+ @footer = v
114
+ end
92
115
 
93
116
  # Serializes the page margins element
94
117
  # @param [String] str
@@ -17,8 +17,7 @@ module Axlsx
17
17
 
18
18
  serializable_attributes :auto_page_breaks, :fit_to_page
19
19
 
20
- attr_reader :auto_page_breaks
21
- attr_reader :fit_to_page
20
+ attr_reader :auto_page_breaks, :fit_to_page
22
21
 
23
22
  # Flag indicating whether the Fit to Page print option is enabled.
24
23
  # @param [Boolean] value
@@ -198,17 +198,40 @@ module Axlsx
198
198
  end
199
199
 
200
200
  # @see fit_to_height
201
- def fit_to_height=(v); Axlsx.validate_unsigned_int(v); @fit_to_height = v; end
201
+ def fit_to_height=(v)
202
+ Axlsx.validate_unsigned_int(v)
203
+ @fit_to_height = v
204
+ end
205
+
202
206
  # @see fit_to_width
203
- def fit_to_width=(v); Axlsx.validate_unsigned_int(v); @fit_to_width = v; end
207
+ def fit_to_width=(v)
208
+ Axlsx.validate_unsigned_int(v)
209
+ @fit_to_width = v
210
+ end
211
+
204
212
  # @see orientation
205
- def orientation=(v); Axlsx.validate_page_orientation(v); @orientation = v; end
213
+ def orientation=(v)
214
+ Axlsx.validate_page_orientation(v)
215
+ @orientation = v
216
+ end
217
+
206
218
  # @see paper_height
207
- def paper_height=(v); Axlsx.validate_number_with_unit(v); @paper_height = v; end
219
+ def paper_height=(v)
220
+ Axlsx.validate_number_with_unit(v)
221
+ @paper_height = v
222
+ end
223
+
208
224
  # @see paper_width
209
- def paper_width=(v); Axlsx.validate_number_with_unit(v); @paper_width = v; end
225
+ def paper_width=(v)
226
+ Axlsx.validate_number_with_unit(v)
227
+ @paper_width = v
228
+ end
229
+
210
230
  # @see scale
211
- def scale=(v); Axlsx.validate_scale_10_400(v); @scale = v; end
231
+ def scale=(v)
232
+ Axlsx.validate_scale_10_400(v)
233
+ @scale = v
234
+ end
212
235
 
213
236
  # convenience method to achieve sanity when setting fit_to_width and fit_to_height
214
237
  # as they both default to 1 if only their counterpart is specified.
@@ -226,7 +249,7 @@ module Axlsx
226
249
  # @return [Boolean]
227
250
  def fit_to_page?
228
251
  # is there some better way to express this?
229
- (!fit_to_width.nil? || !fit_to_height.nil?)
252
+ !fit_to_width.nil? || !fit_to_height.nil?
230
253
  end
231
254
 
232
255
  # Serializes the page settings element.
@@ -114,10 +114,16 @@ module Axlsx
114
114
  end
115
115
 
116
116
  # @see x_split
117
- def x_split=(v); Axlsx.validate_unsigned_int(v); @x_split = v end
117
+ def x_split=(v)
118
+ Axlsx.validate_unsigned_int(v)
119
+ @x_split = v
120
+ end
118
121
 
119
122
  # @see y_split
120
- def y_split=(v); Axlsx.validate_unsigned_int(v); @y_split = v end
123
+ def y_split=(v)
124
+ Axlsx.validate_unsigned_int(v)
125
+ @y_split = v
126
+ end
121
127
 
122
128
  # Serializes the data validation
123
129
  # @param [String] str
@@ -7,7 +7,7 @@ module Axlsx
7
7
  def initialize(worksheet)
8
8
  raise ArgumentError, "you must provide a worksheet" unless worksheet.is_a?(Worksheet)
9
9
 
10
- super PivotTable
10
+ super(PivotTable)
11
11
  @worksheet = worksheet
12
12
  end
13
13
 
@@ -9,7 +9,7 @@ module Axlsx
9
9
  def initialize(worksheet)
10
10
  raise ArgumentError, 'You must provide a worksheet' unless worksheet.is_a?(Worksheet)
11
11
 
12
- super ProtectedRange
12
+ super(ProtectedRange)
13
13
  @worksheet = worksheet
14
14
  end
15
15
 
@@ -29,7 +29,9 @@ module Axlsx
29
29
  attr_reader :font_name
30
30
 
31
31
  # @see font_name
32
- def font_name=(v) set_run_style :validate_string, :font_name, v; end
32
+ def font_name=(v)
33
+ set_run_style :validate_string, :font_name, v
34
+ end
33
35
 
34
36
  # The inline charset property for the cell
35
37
  # As far as I can tell, this is pretty much ignored. However, based on the spec it should be one of the following:
@@ -56,7 +58,9 @@ module Axlsx
56
58
  attr_reader :charset
57
59
 
58
60
  # @see charset
59
- def charset=(v) set_run_style :validate_unsigned_int, :charset, v; end
61
+ def charset=(v)
62
+ set_run_style :validate_unsigned_int, :charset, v
63
+ end
60
64
 
61
65
  # The inline family property for the cell
62
66
  # @return [Integer]
@@ -77,49 +81,63 @@ module Axlsx
77
81
  attr_reader :b
78
82
 
79
83
  # @see b
80
- def b=(v) set_run_style :validate_boolean, :b, v; end
84
+ def b=(v)
85
+ set_run_style :validate_boolean, :b, v
86
+ end
81
87
 
82
88
  # The inline italic property for the cell
83
89
  # @return [Boolean]
84
90
  attr_reader :i
85
91
 
86
92
  # @see i
87
- def i=(v) set_run_style :validate_boolean, :i, v; end
93
+ def i=(v)
94
+ set_run_style :validate_boolean, :i, v
95
+ end
88
96
 
89
97
  # The inline strike property for the cell
90
98
  # @return [Boolean]
91
99
  attr_reader :strike
92
100
 
93
101
  # @see strike
94
- def strike=(v) set_run_style :validate_boolean, :strike, v; end
102
+ def strike=(v)
103
+ set_run_style :validate_boolean, :strike, v
104
+ end
95
105
 
96
106
  # The inline outline property for the cell
97
107
  # @return [Boolean]
98
108
  attr_reader :outline
99
109
 
100
110
  # @see outline
101
- def outline=(v) set_run_style :validate_boolean, :outline, v; end
111
+ def outline=(v)
112
+ set_run_style :validate_boolean, :outline, v
113
+ end
102
114
 
103
115
  # The inline shadow property for the cell
104
116
  # @return [Boolean]
105
117
  attr_reader :shadow
106
118
 
107
119
  # @see shadow
108
- def shadow=(v) set_run_style :validate_boolean, :shadow, v; end
120
+ def shadow=(v)
121
+ set_run_style :validate_boolean, :shadow, v
122
+ end
109
123
 
110
124
  # The inline condense property for the cell
111
125
  # @return [Boolean]
112
126
  attr_reader :condense
113
127
 
114
128
  # @see condense
115
- def condense=(v) set_run_style :validate_boolean, :condense, v; end
129
+ def condense=(v)
130
+ set_run_style :validate_boolean, :condense, v
131
+ end
116
132
 
117
133
  # The inline extend property for the cell
118
134
  # @return [Boolean]
119
135
  attr_reader :extend
120
136
 
121
137
  # @see extend
122
- def extend=(v) set_run_style :validate_boolean, :extend, v; end
138
+ def extend=(v)
139
+ set_run_style :validate_boolean, :extend, v
140
+ end
123
141
 
124
142
  # The inline underline property for the cell.
125
143
  # It must be one of :none, :single, :double, :singleAccounting, :doubleAccounting, true
@@ -148,7 +166,9 @@ module Axlsx
148
166
  attr_reader :sz
149
167
 
150
168
  # @see sz
151
- def sz=(v) set_run_style :validate_unsigned_int, :sz, v; end
169
+ def sz=(v)
170
+ set_run_style :validate_unsigned_int, :sz, v
171
+ end
152
172
 
153
173
  # The inline vertical alignment property for the cell
154
174
  # this must be one of [:baseline, :subscript, :superscript]
@@ -143,7 +143,10 @@ module Axlsx
143
143
  private
144
144
 
145
145
  # assigns the owning worksheet for this row
146
- def worksheet=(v) DataTypeValidator.validate :row_worksheet, Worksheet, v; @worksheet = v; end
146
+ def worksheet=(v)
147
+ DataTypeValidator.validate :row_worksheet, Worksheet, v
148
+ @worksheet = v
149
+ end
147
150
 
148
151
  # Converts values, types, and style options into cells and associates them with this row.
149
152
  # A new cell is created for each item in the values array.
@@ -160,7 +163,7 @@ module Axlsx
160
163
  types, style, formula_values, escape_formulas, offset = options.delete(:types), options.delete(:style), options.delete(:formula_values), options.delete(:escape_formulas), options.delete(:offset)
161
164
  offset.to_i.times { |index| self[index] = Cell.new(self) } if offset
162
165
  values.each_with_index do |value, index|
163
- options[:style] = style.is_a?(Array) ? style[index] : style if style
166
+ options[:style] = (style.is_a?(Array) ? style[index] : style) || worksheet.column_info[index]&.style
164
167
  options[:type] = types.is_a?(Array) ? types[index] : types if types
165
168
  options[:escape_formulas] = escape_formulas.is_a?(Array) ? escape_formulas[index] : escape_formulas unless escape_formulas.nil?
166
169
  options[:formula_value] = formula_values[index] if formula_values.is_a?(Array)
@@ -5,7 +5,7 @@ module Axlsx
5
5
 
6
6
  class RowBreaks < SimpleTypedList
7
7
  def initialize
8
- super Break
8
+ super(Break)
9
9
  end
10
10
 
11
11
  # Adds a row break
@@ -80,7 +80,10 @@ module Axlsx
80
80
  end
81
81
 
82
82
  # @see active_cell_id
83
- def active_cell_id=(v); Axlsx.validate_unsigned_int(v); @active_cell_id = v end
83
+ def active_cell_id=(v)
84
+ Axlsx.validate_unsigned_int(v)
85
+ @active_cell_id = v
86
+ end
84
87
 
85
88
  # @see pane
86
89
  def pane=(v)
@@ -89,7 +92,10 @@ module Axlsx
89
92
  end
90
93
 
91
94
  # @see sqref
92
- def sqref=(v); Axlsx.validate_string(v); @sqref = v end
95
+ def sqref=(v)
96
+ Axlsx.validate_string(v)
97
+ @sqref = v
98
+ end
93
99
 
94
100
  # Serializes the data validation
95
101
  # @param [String] str
@@ -106,7 +106,7 @@ module Axlsx
106
106
  char = char.unpack1('c') << i # ord << i
107
107
  low_15 = char & 0x7fff
108
108
  high_15 = char & (0x7fff << 15)
109
- high_15 = high_15 >> 15
109
+ high_15 >>= 15
110
110
  low_15 | high_15
111
111
  end
112
112
 
@@ -33,8 +33,8 @@ module Axlsx
33
33
  def initialize(options = {})
34
34
  # defaults
35
35
  @color_id = @top_left_cell = @pane = nil
36
- @right_to_left = @show_formulas = @show_outline_symbols = @show_white_space = @tab_selected = @window_protection = false
37
- @default_grid_color = @show_grid_lines = @show_row_col_headers = @show_ruler = @show_zeros = true
36
+ @right_to_left = @show_formulas = @show_white_space = @tab_selected = @window_protection = false
37
+ @default_grid_color = @show_grid_lines = @show_row_col_headers = @show_ruler = @show_zeros = @show_outline_symbols = true
38
38
  @zoom_scale = 100
39
39
  @zoom_scale_normal = @zoom_scale_page_layout_view = @zoom_scale_sheet_layout_view = @workbook_view_id = 0
40
40
  @selections = {}
@@ -162,7 +162,10 @@ module Axlsx
162
162
  end
163
163
 
164
164
  # @see color_id
165
- def color_id=(v); Axlsx.validate_unsigned_int(v); @color_id = v end
165
+ def color_id=(v)
166
+ Axlsx.validate_unsigned_int(v)
167
+ @color_id = v
168
+ end
166
169
 
167
170
  # @see top_left_cell
168
171
  def top_left_cell=(v)
@@ -172,22 +175,40 @@ module Axlsx
172
175
  end
173
176
 
174
177
  # @see view
175
- def view=(v); Axlsx.validate_sheet_view_type(v); @view = v end
178
+ def view=(v)
179
+ Axlsx.validate_sheet_view_type(v)
180
+ @view = v
181
+ end
176
182
 
177
183
  # @see workbook_view_id
178
- def workbook_view_id=(v); Axlsx.validate_unsigned_int(v); @workbook_view_id = v end
184
+ def workbook_view_id=(v)
185
+ Axlsx.validate_unsigned_int(v)
186
+ @workbook_view_id = v
187
+ end
179
188
 
180
189
  # @see zoom_scale
181
- def zoom_scale=(v); Axlsx.validate_scale_0_10_400(v); @zoom_scale = v end
190
+ def zoom_scale=(v)
191
+ Axlsx.validate_scale_0_10_400(v)
192
+ @zoom_scale = v
193
+ end
182
194
 
183
195
  # @see zoom_scale_normal
184
- def zoom_scale_normal=(v); Axlsx.validate_scale_0_10_400(v); @zoom_scale_normal = v end
196
+ def zoom_scale_normal=(v)
197
+ Axlsx.validate_scale_0_10_400(v)
198
+ @zoom_scale_normal = v
199
+ end
185
200
 
186
201
  # @see zoom_scale_page_layout_view
187
- def zoom_scale_page_layout_view=(v); Axlsx.validate_scale_0_10_400(v); @zoom_scale_page_layout_view = v end
202
+ def zoom_scale_page_layout_view=(v)
203
+ Axlsx.validate_scale_0_10_400(v)
204
+ @zoom_scale_page_layout_view = v
205
+ end
188
206
 
189
207
  # @see zoom_scale_sheet_layout_view
190
- def zoom_scale_sheet_layout_view=(v); Axlsx.validate_scale_0_10_400(v); @zoom_scale_sheet_layout_view = v end
208
+ def zoom_scale_sheet_layout_view=(v)
209
+ Axlsx.validate_scale_0_10_400(v)
210
+ @zoom_scale_sheet_layout_view = v
211
+ end
191
212
 
192
213
  # Serializes the data validation
193
214
  # @param [String] str
@@ -34,7 +34,7 @@ module Axlsx
34
34
  # explicitly be disabled or all will show.
35
35
  def initialize_defaults
36
36
  %w(show_first_column show_last_column show_row_stripes show_column_stripes).each do |attr|
37
- send("#{attr}=", 0)
37
+ send(:"#{attr}=", 0)
38
38
  end
39
39
  end
40
40