caxlsx 3.3.0 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +24 -5
  4. data/Rakefile +0 -1
  5. data/lib/axlsx/content_type/abstract_content_type.rb +2 -5
  6. data/lib/axlsx/content_type/content_type.rb +0 -4
  7. data/lib/axlsx/content_type/default.rb +1 -5
  8. data/lib/axlsx/content_type/override.rb +0 -4
  9. data/lib/axlsx/doc_props/app.rb +1 -6
  10. data/lib/axlsx/doc_props/core.rb +1 -6
  11. data/lib/axlsx/drawing/area_chart.rb +3 -6
  12. data/lib/axlsx/drawing/area_series.rb +1 -4
  13. data/lib/axlsx/drawing/ax_data_source.rb +1 -6
  14. data/lib/axlsx/drawing/axes.rb +5 -6
  15. data/lib/axlsx/drawing/axis.rb +7 -12
  16. data/lib/axlsx/drawing/bar_3D_chart.rb +7 -10
  17. data/lib/axlsx/drawing/bar_chart.rb +6 -9
  18. data/lib/axlsx/drawing/bar_series.rb +2 -8
  19. data/lib/axlsx/drawing/bubble_chart.rb +2 -5
  20. data/lib/axlsx/drawing/bubble_series.rb +3 -6
  21. data/lib/axlsx/drawing/cat_axis.rb +2 -7
  22. data/lib/axlsx/drawing/chart.rb +7 -12
  23. data/lib/axlsx/drawing/d_lbls.rb +23 -22
  24. data/lib/axlsx/drawing/drawing.rb +4 -8
  25. data/lib/axlsx/drawing/graphic_frame.rb +0 -3
  26. data/lib/axlsx/drawing/hyperlink.rb +4 -7
  27. data/lib/axlsx/drawing/line_3D_chart.rb +10 -14
  28. data/lib/axlsx/drawing/line_chart.rb +3 -6
  29. data/lib/axlsx/drawing/line_series.rb +1 -4
  30. data/lib/axlsx/drawing/marker.rb +5 -9
  31. data/lib/axlsx/drawing/num_data.rb +4 -9
  32. data/lib/axlsx/drawing/num_data_source.rb +3 -7
  33. data/lib/axlsx/drawing/num_val.rb +2 -5
  34. data/lib/axlsx/drawing/one_cell_anchor.rb +4 -6
  35. data/lib/axlsx/drawing/pic.rb +46 -13
  36. data/lib/axlsx/drawing/picture_locking.rb +3 -6
  37. data/lib/axlsx/drawing/pie_3D_chart.rb +2 -7
  38. data/lib/axlsx/drawing/pie_series.rb +1 -6
  39. data/lib/axlsx/drawing/scaling.rb +2 -5
  40. data/lib/axlsx/drawing/scatter_chart.rb +2 -5
  41. data/lib/axlsx/drawing/scatter_series.rb +2 -5
  42. data/lib/axlsx/drawing/ser_axis.rb +2 -6
  43. data/lib/axlsx/drawing/series.rb +3 -5
  44. data/lib/axlsx/drawing/series_title.rb +0 -2
  45. data/lib/axlsx/drawing/str_data.rb +3 -8
  46. data/lib/axlsx/drawing/str_val.rb +2 -5
  47. data/lib/axlsx/drawing/title.rb +12 -15
  48. data/lib/axlsx/drawing/two_cell_anchor.rb +5 -7
  49. data/lib/axlsx/drawing/val_axis.rb +1 -4
  50. data/lib/axlsx/drawing/view_3D.rb +24 -24
  51. data/lib/axlsx/drawing/vml_drawing.rb +2 -5
  52. data/lib/axlsx/drawing/vml_shape.rb +4 -7
  53. data/lib/axlsx/package.rb +35 -36
  54. data/lib/axlsx/rels/relationship.rb +21 -24
  55. data/lib/axlsx/rels/relationships.rb +3 -6
  56. data/lib/axlsx/stylesheet/border.rb +1 -4
  57. data/lib/axlsx/stylesheet/border_pr.rb +3 -5
  58. data/lib/axlsx/stylesheet/cell_alignment.rb +2 -10
  59. data/lib/axlsx/stylesheet/cell_protection.rb +1 -4
  60. data/lib/axlsx/stylesheet/cell_style.rb +3 -7
  61. data/lib/axlsx/stylesheet/color.rb +6 -5
  62. data/lib/axlsx/stylesheet/dxf.rb +2 -6
  63. data/lib/axlsx/stylesheet/fill.rb +0 -4
  64. data/lib/axlsx/stylesheet/font.rb +7 -6
  65. data/lib/axlsx/stylesheet/gradient_fill.rb +4 -6
  66. data/lib/axlsx/stylesheet/gradient_stop.rb +2 -3
  67. data/lib/axlsx/stylesheet/num_fmt.rb +1 -4
  68. data/lib/axlsx/stylesheet/pattern_fill.rb +3 -5
  69. data/lib/axlsx/stylesheet/styles.rb +53 -45
  70. data/lib/axlsx/stylesheet/table_style.rb +5 -8
  71. data/lib/axlsx/stylesheet/table_style_element.rb +1 -4
  72. data/lib/axlsx/stylesheet/table_styles.rb +3 -7
  73. data/lib/axlsx/stylesheet/xf.rb +3 -6
  74. data/lib/axlsx/util/accessors.rb +2 -4
  75. data/lib/axlsx/util/constants.rb +3 -5
  76. data/lib/axlsx/util/mime_type_utils.rb +13 -0
  77. data/lib/axlsx/util/options_parser.rb +1 -2
  78. data/lib/axlsx/util/serialized_attributes.rb +4 -5
  79. data/lib/axlsx/util/simple_typed_list.rb +18 -17
  80. data/lib/axlsx/util/storage.rb +32 -36
  81. data/lib/axlsx/util/validators.rb +7 -4
  82. data/lib/axlsx/util/zip_command.rb +0 -2
  83. data/lib/axlsx/version.rb +1 -2
  84. data/lib/axlsx/workbook/defined_name.rb +6 -5
  85. data/lib/axlsx/workbook/defined_names.rb +1 -2
  86. data/lib/axlsx/workbook/shared_strings_table.rb +3 -6
  87. data/lib/axlsx/workbook/workbook.rb +96 -91
  88. data/lib/axlsx/workbook/workbook_view.rb +5 -10
  89. data/lib/axlsx/workbook/workbook_views.rb +1 -3
  90. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +9 -8
  91. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +6 -6
  92. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +13 -14
  93. data/lib/axlsx/workbook/worksheet/border_creator.rb +29 -26
  94. data/lib/axlsx/workbook/worksheet/break.rb +2 -5
  95. data/lib/axlsx/workbook/worksheet/cell.rb +46 -26
  96. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +11 -11
  97. data/lib/axlsx/workbook/worksheet/cfvo.rb +2 -2
  98. data/lib/axlsx/workbook/worksheet/cfvos.rb +3 -5
  99. data/lib/axlsx/workbook/worksheet/col.rb +4 -7
  100. data/lib/axlsx/workbook/worksheet/col_breaks.rb +4 -5
  101. data/lib/axlsx/workbook/worksheet/color_scale.rb +10 -12
  102. data/lib/axlsx/workbook/worksheet/cols.rb +6 -6
  103. data/lib/axlsx/workbook/worksheet/comment.rb +4 -5
  104. data/lib/axlsx/workbook/worksheet/comments.rb +6 -10
  105. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +4 -5
  106. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +2 -6
  107. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +2 -4
  108. data/lib/axlsx/workbook/worksheet/data_bar.rb +20 -22
  109. data/lib/axlsx/workbook/worksheet/data_validation.rb +4 -5
  110. data/lib/axlsx/workbook/worksheet/data_validations.rb +2 -5
  111. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +1 -3
  112. data/lib/axlsx/workbook/worksheet/dimension.rb +5 -4
  113. data/lib/axlsx/workbook/worksheet/header_footer.rb +0 -1
  114. data/lib/axlsx/workbook/worksheet/icon_set.rb +2 -3
  115. data/lib/axlsx/workbook/worksheet/merged_cells.rb +8 -8
  116. data/lib/axlsx/workbook/worksheet/outline_pr.rb +0 -1
  117. data/lib/axlsx/workbook/worksheet/page_margins.rb +2 -2
  118. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +1 -3
  119. data/lib/axlsx/workbook/worksheet/page_setup.rb +117 -120
  120. data/lib/axlsx/workbook/worksheet/pane.rb +16 -17
  121. data/lib/axlsx/workbook/worksheet/pivot_table.rb +8 -11
  122. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +8 -11
  123. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +3 -4
  124. data/lib/axlsx/workbook/worksheet/print_options.rb +0 -1
  125. data/lib/axlsx/workbook/worksheet/protected_range.rb +4 -5
  126. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +9 -9
  127. data/lib/axlsx/workbook/worksheet/rich_text.rb +4 -6
  128. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +21 -5
  129. data/lib/axlsx/workbook/worksheet/row.rb +24 -15
  130. data/lib/axlsx/workbook/worksheet/row_breaks.rb +3 -4
  131. data/lib/axlsx/workbook/worksheet/selection.rb +7 -9
  132. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +5 -6
  133. data/lib/axlsx/workbook/worksheet/sheet_data.rb +4 -6
  134. data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +18 -18
  135. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +4 -4
  136. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +12 -13
  137. data/lib/axlsx/workbook/worksheet/sheet_view.rb +35 -42
  138. data/lib/axlsx/workbook/worksheet/table.rb +7 -9
  139. data/lib/axlsx/workbook/worksheet/table_style_info.rb +2 -3
  140. data/lib/axlsx/workbook/worksheet/tables.rb +4 -4
  141. data/lib/axlsx/workbook/worksheet/worksheet.rb +63 -35
  142. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +6 -6
  143. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +3 -2
  144. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +5 -6
  145. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +4 -4
  146. data/lib/axlsx.rb +23 -9
  147. data/lib/caxlsx.rb +0 -1
  148. metadata +3 -3
@@ -1,12 +1,10 @@
1
- # encoding: UTF-8
2
1
  module Axlsx
3
- #A CatAxis object defines a chart category axis
2
+ # A CatAxis object defines a chart category axis
4
3
  class CatAxis < Axis
5
-
6
4
  # Creates a new CatAxis object
7
5
  # @option options [Integer] tick_lbl_skip
8
6
  # @option options [Integer] tick_mark_skip
9
- def initialize(options={})
7
+ def initialize(options = {})
10
8
  @tick_lbl_skip = 1
11
9
  @tick_mark_skip = 1
12
10
  self.auto = 1
@@ -78,8 +76,5 @@ module Axlsx
78
76
  str << ('<c:tickMarkSkip val="' << @tick_mark_skip.to_s << '"/>')
79
77
  str << '</c:catAx>'
80
78
  end
81
-
82
79
  end
83
-
84
-
85
80
  end
@@ -1,11 +1,8 @@
1
- # encoding: UTF-8
2
1
  module Axlsx
3
-
4
2
  # A Chart is the superclass for specific charts
5
3
  # @note Worksheet#add_chart is the recommended way to create charts for your worksheets.
6
4
  # @see README for examples
7
5
  class Chart
8
-
9
6
  include Axlsx::OptionsParser
10
7
  # Creates a new chart object
11
8
  # @param [GraphicalFrame] frame The frame that holds this chart.
@@ -16,10 +13,10 @@ module Axlsx
16
13
  # @option options [Array|String|Cell] end_at The X, Y coordinates defining the bottom right corner of the chart.
17
14
  # @option options [Boolean] plot_visible_only (true) Whether only data from visible cells should be plotted.
18
15
  # @option options [Boolean] rounded_corners (true) Whether the chart area shall have rounded corners.
19
- def initialize(frame, options={})
16
+ def initialize(frame, options = {})
20
17
  @style = 18
21
18
  @view_3D = nil
22
- @graphic_frame=frame
19
+ @graphic_frame = frame
23
20
  @graphic_frame.anchor.drawing.worksheet.workbook.charts << self
24
21
  @series = SimpleTypedList.new Series
25
22
  @show_legend = true
@@ -52,7 +49,7 @@ module Axlsx
52
49
  # @return [Series]
53
50
  attr_reader :series_type
54
51
 
55
- #TODO data labels!
52
+ # TODO data labels!
56
53
  def d_lbls
57
54
  @d_lbls ||= DLbls.new(self.class)
58
55
  end
@@ -125,7 +122,7 @@ module Axlsx
125
122
  # The part name for this chart
126
123
  # @return [String]
127
124
  def pn
128
- "#{CHART_PN % (index+1)}"
125
+ "#{CHART_PN % (index + 1)}"
129
126
  end
130
127
 
131
128
  # The title object for the chart.
@@ -181,7 +178,7 @@ module Axlsx
181
178
  # Adds a new series to the chart's series collection.
182
179
  # @return [Series]
183
180
  # @see Series
184
- def add_series(options={})
181
+ def add_series(options = {})
185
182
  @series_type.new(self, options)
186
183
  @series.last
187
184
  end
@@ -275,7 +272,7 @@ module Axlsx
275
272
  # reference or cell to use in setting the start marker position.
276
273
  # @param [Integer] y The row
277
274
  # @return [Marker]
278
- def start_at(x=0, y=0)
275
+ def start_at(x = 0, y = 0)
279
276
  @graphic_frame.anchor.start_at(x, y)
280
277
  end
281
278
 
@@ -286,14 +283,12 @@ module Axlsx
286
283
  # @param [Integer] y The row - default 10
287
284
  # @return [Marker]
288
285
  # @see start_at
289
- def end_at(x=10, y=10)
286
+ def end_at(x = 10, y = 10)
290
287
  @graphic_frame.anchor.end_at(x, y)
291
288
  end
292
289
 
293
290
  # sets the view_3D object for the chart
294
291
  def view_3D=(v) DataTypeValidator.validate "#{self.class}.view_3D", View3D, v; @view_3D = v; end
295
292
  alias :view3D= :view_3D=
296
-
297
293
  end
298
-
299
294
  end
@@ -2,15 +2,15 @@ module Axlsx
2
2
  # There are more elements in the dLbls spec that allow for
3
3
  # customizations and formatting. For now, I am just implementing the
4
4
  # basics.
5
- #The DLbls class manages serialization of data labels
5
+ # The DLbls class manages serialization of data labels
6
6
  # showLeaderLines and leaderLines are not currently implemented
7
7
  class DLbls
8
-
9
8
  include Axlsx::Accessors
10
- include Axlsx::OptionsParser
9
+ include Axlsx::OptionsParser
11
10
  # creates a new DLbls object
12
- def initialize(chart_type, options={})
11
+ def initialize(chart_type, options = {})
13
12
  raise ArgumentError, 'chart_type must inherit from Chart' unless [Chart, LineChart].include?(chart_type.superclass)
13
+
14
14
  @chart_type = chart_type
15
15
  initialize_defaults
16
16
  parse_options options
@@ -18,31 +18,31 @@ module Axlsx
18
18
 
19
19
  # These attributes are all boolean so I'm doing a bit of a hand
20
20
  # waving magic show to set up the attriubte accessors
21
- # @note
22
- # not all charts support all methods!
21
+ # @note
22
+ # not all charts support all methods!
23
23
  # Bar3DChart and Line3DChart and ScatterChart do not support d_lbl_pos or show_leader_lines
24
- #
25
- boolean_attr_accessor :show_legend_key,
26
- :show_val,
27
- :show_cat_name,
28
- :show_ser_name,
29
- :show_percent,
30
- :show_bubble_size,
24
+ #
25
+ boolean_attr_accessor :show_legend_key,
26
+ :show_val,
27
+ :show_cat_name,
28
+ :show_ser_name,
29
+ :show_percent,
30
+ :show_bubble_size,
31
31
  :show_leader_lines
32
32
 
33
33
  # Initialize all the values to false as Excel requires them to
34
34
  # explicitly be disabled or all will show.
35
35
  def initialize_defaults
36
- [:show_legend_key, :show_val, :show_cat_name,
37
- :show_ser_name, :show_percent, :show_bubble_size,
36
+ [:show_legend_key, :show_val, :show_cat_name,
37
+ :show_ser_name, :show_percent, :show_bubble_size,
38
38
  :show_leader_lines].each do |attr|
39
39
  self.send("#{attr}=", false)
40
40
  end
41
41
  end
42
42
 
43
- # The chart type that is using this data lables instance.
43
+ # The chart type that is using this data lables instance.
44
44
  # This affects the xml output as not all chart types support the
45
- # same data label attributes.
45
+ # same data label attributes.
46
46
  attr_reader :chart_type
47
47
 
48
48
  # The position of the data labels in the chart
@@ -50,6 +50,7 @@ module Axlsx
50
50
  # @return [Symbol]
51
51
  def d_lbl_pos
52
52
  return unless [Pie3DChart, LineChart].include? @chart_type
53
+
53
54
  @d_lbl_pos ||= :bestFit
54
55
  end
55
56
 
@@ -61,11 +62,11 @@ module Axlsx
61
62
  # @param [Symbol] label_position the postion you want to use.
62
63
  def d_lbl_pos=(label_position)
63
64
  return unless [Pie3DChart, LineChart].include? @chart_type
64
- Axlsx::RestrictionValidator.validate 'DLbls#d_lbl_pos', [:bestFit, :b, :ctr, :inBase, :inEnd, :l, :outEnd, :r, :t], label_position
65
+
66
+ Axlsx::RestrictionValidator.validate 'DLbls#d_lbl_pos', [:bestFit, :b, :ctr, :inBase, :inEnd, :l, :outEnd, :r, :t], label_position
65
67
  @d_lbl_pos = label_position
66
68
  end
67
69
 
68
-
69
70
  # serializes the data labels
70
71
  # @return [String]
71
72
  def to_xml_string(str = '')
@@ -74,7 +75,8 @@ module Axlsx
74
75
  instance_vals = Axlsx.instance_values_for(self)
75
76
  %w(d_lbl_pos show_legend_key show_val show_cat_name show_ser_name show_percent show_bubble_size show_leader_lines).each do |key|
76
77
  next unless instance_vals.keys.include?(key) && instance_vals[key] != nil
77
- str << "<c:#{Axlsx::camel(key, false)} val='#{instance_vals[key]}' />"
78
+
79
+ str << "<c:#{Axlsx::camel(key, false)} val='#{instance_vals[key]}' />"
78
80
  end
79
81
  str << '</c:dLbls>'
80
82
  end
@@ -82,10 +84,9 @@ module Axlsx
82
84
  # nills out d_lbl_pos and show_leader_lines as these attributes, while valid in the spec actually chrash excel for any chart type other than pie charts.
83
85
  def validate_attributes_for_chart_type
84
86
  return if [Pie3DChart, LineChart].include? @chart_type
87
+
85
88
  @d_lbl_pos = nil
86
89
  @show_leader_lines = nil
87
90
  end
88
-
89
-
90
91
  end
91
92
  end
@@ -1,4 +1,3 @@
1
- # encoding: UTF-8
2
1
  module Axlsx
3
2
  require 'axlsx/drawing/d_lbls.rb'
4
3
  require 'axlsx/drawing/title.rb'
@@ -58,7 +57,6 @@ module Axlsx
58
57
  # @see Chart
59
58
  # see examples/example.rb for an example of how to create a chart.
60
59
  class Drawing
61
-
62
60
  # The worksheet that owns the drawing
63
61
  # @return [Worksheet]
64
62
  attr_reader :worksheet
@@ -77,12 +75,11 @@ module Axlsx
77
75
  @anchors = SimpleTypedList.new [TwoCellAnchor, OneCellAnchor]
78
76
  end
79
77
 
80
-
81
78
  # Adds an image to the chart If th end_at option is specified we create a two cell anchor. By default we use a one cell anchor.
82
79
  # @note The recommended way to manage images is to use Worksheet.add_image. Please refer to that method for documentation.
83
80
  # @see Worksheet#add_image
84
81
  # @return [Pic]
85
- def add_image(options={})
82
+ def add_image(options = {})
86
83
  if options[:end_at]
87
84
  TwoCellAnchor.new(self, options).add_pic(options)
88
85
  else
@@ -94,7 +91,7 @@ module Axlsx
94
91
  # Adds a chart to the drawing.
95
92
  # @note The recommended way to manage charts is to use Worksheet.add_chart. Please refer to that method for documentation.
96
93
  # @see Worksheet#add_chart
97
- def add_chart(chart_type, options={})
94
+ def add_chart(chart_type, options = {})
98
95
  TwoCellAnchor.new(self, options)
99
96
  @anchors.last.add_chart(chart_type, options)
100
97
  end
@@ -129,14 +126,14 @@ module Axlsx
129
126
  # The part name for this drawing
130
127
  # @return [String]
131
128
  def pn
132
- "#{DRAWING_PN % (index+1)}"
129
+ "#{DRAWING_PN % (index + 1)}"
133
130
  end
134
131
 
135
132
  # The relational part name for this drawing
136
133
  # #NOTE This should be rewritten to return an Axlsx::Relationship object.
137
134
  # @return [String]
138
135
  def rels_pn
139
- "#{DRAWING_RELS_PN % (index+1)}"
136
+ "#{DRAWING_RELS_PN % (index + 1)}"
140
137
  end
141
138
 
142
139
  # A list of objects this drawing holds.
@@ -162,6 +159,5 @@ module Axlsx
162
159
  anchors.each { |anchor| anchor.to_xml_string(str) }
163
160
  str << '</xdr:wsDr>'
164
161
  end
165
-
166
162
  end
167
163
  end
@@ -1,10 +1,8 @@
1
- # encoding: UTF-8
2
1
  module Axlsx
3
2
  # A graphic frame defines a container for a chart object
4
3
  # @note The recommended way to manage charts is Worksheet#add_chart
5
4
  # @see Worksheet#add_chart
6
5
  class GraphicFrame
7
-
8
6
  # A reference to the chart object associated with this frame
9
7
  # @return [Chart]
10
8
  attr_reader :chart
@@ -49,6 +47,5 @@ module Axlsx
49
47
  str << '</a:graphic>'
50
48
  str << '</xdr:graphicFrame>'
51
49
  end
52
-
53
50
  end
54
51
  end
@@ -1,14 +1,12 @@
1
- # encoding: UTF-8
2
1
  module Axlsx
3
2
  # a hyperlink object adds an action to an image when clicked so that when the image is clicked the link is fecthed.
4
3
  # @note using the hyperlink option when calling add_image on a drawing object is the recommended way to manage hyperlinks
5
4
  # @see {file:README} README
6
5
  class Hyperlink
7
-
8
6
  include Axlsx::SerializedAttributes
9
7
  include Axlsx::OptionsParser
10
8
 
11
- #Creates a hyperlink object
9
+ # Creates a hyperlink object
12
10
  # parent must be a Pic for now, although I expect that other object support this tag and its cNvPr parent
13
11
  # @param [Pic] parent
14
12
  # @option options [String] tooltip message shown when hyperlinked object is hovered over with mouse.
@@ -19,7 +17,7 @@ module Axlsx
19
17
  # @option options [Boolean] endSnd terminate any sound events when processing this link
20
18
  # @option options [Boolean] history include this link in the list of visited links for the applications history.
21
19
  # @option options [Boolean] highlightClick indicate that the link has already been visited.
22
- def initialize(parent, options={})
20
+ def initialize(parent, options = {})
23
21
  DataTypeValidator.validate "Hyperlink.parent", [Pic], parent
24
22
  @parent = parent
25
23
  parse_options options
@@ -40,7 +38,7 @@ module Axlsx
40
38
  alias :invalidUrl :invalid_url
41
39
  alias :invalidUrl= :invalid_url=
42
40
 
43
- #An action to take when the link is clicked. The specification says "This can be used to specify a slide to be navigated to or a script of code to be run." but in most cases you will not need to do anything with this. MS does reserve a few interesting strings. @see http://msdn.microsoft.com/en-us/library/ff532419%28v=office.12%29.aspx
41
+ # An action to take when the link is clicked. The specification says "This can be used to specify a slide to be navigated to or a script of code to be run." but in most cases you will not need to do anything with this. MS does reserve a few interesting strings. @see http://msdn.microsoft.com/en-us/library/ff532419%28v=office.12%29.aspx
44
42
  # @return [String]
45
43
  attr_accessor :action
46
44
 
@@ -93,8 +91,7 @@ module Axlsx
93
91
  # @param [String] str
94
92
  # @return [String]
95
93
  def to_xml_string(str = '')
96
- serialized_tag 'a:hlinkClick', str, {:'r:id' => relationship.Id, :'xmlns:r' => XML_NS_R }
94
+ serialized_tag 'a:hlinkClick', str, { :'r:id' => relationship.Id, :'xmlns:r' => XML_NS_R }
97
95
  end
98
-
99
96
  end
100
97
  end
@@ -1,6 +1,4 @@
1
- # encoding: UTF-8
2
1
  module Axlsx
3
-
4
2
  # The Line3DChart is a three dimentional line chart (who would have guessed?) that you can add to your worksheet.
5
3
  # @example Creating a chart
6
4
  # # This example creates a line in a single sheet.
@@ -20,7 +18,6 @@ module Axlsx
20
18
  # @see Series
21
19
  # @see Package#serialize
22
20
  class Line3DChart < Axlsx::LineChart
23
-
24
21
  # space between bar or column clusters, as a percentage of the bar or column width.
25
22
  # @return [String]
26
23
  attr_reader :gap_depth
@@ -41,28 +38,27 @@ module Axlsx
41
38
  # @see Chart
42
39
  # @see lineChart
43
40
  # @see View3D
44
- def initialize(frame, options={})
41
+ def initialize(frame, options = {})
45
42
  @gap_depth = nil
46
- @view_3D = View3D.new({:r_ang_ax=>1}.merge(options))
43
+ @view_3D = View3D.new({ :r_ang_ax => 1 }.merge(options))
47
44
  super(frame, options)
48
45
  axes.add_axis :ser_axis, SerAxis
49
46
  end
50
47
 
51
-
52
48
  # @see gapDepth
53
49
  def gap_depth=(v)
54
50
  RegexValidator.validate "Line3DChart.gapWidth", GAP_AMOUNT_PERCENT, v
55
- @gap_depth=(v)
51
+ @gap_depth = (v)
56
52
  end
57
53
  alias :gapDepth= :gap_depth=
58
54
 
59
- # Serializes the object
60
- # @param [String] str
61
- # @return [String]
62
- def to_xml_string(str = '')
63
- super(str) do
64
- str << ('<c:gapDepth val="' << @gap_depth.to_s << '"/>') unless @gap_depth.nil?
65
- end
55
+ # Serializes the object
56
+ # @param [String] str
57
+ # @return [String]
58
+ def to_xml_string(str = '')
59
+ super(str) do
60
+ str << ('<c:gapDepth val="' << @gap_depth.to_s << '"/>') unless @gap_depth.nil?
66
61
  end
62
+ end
67
63
  end
68
64
  end
@@ -1,6 +1,4 @@
1
- # encoding: UTF-8
2
1
  module Axlsx
3
-
4
2
  # The LineChart is a two dimentional line chart (who would have guessed?) that you can add to your worksheet.
5
3
  # @example Creating a chart
6
4
  # # This example creates a line in a single sheet.
@@ -20,7 +18,6 @@ module Axlsx
20
18
  # @see Series
21
19
  # @see Package#serialize
22
20
  class LineChart < Chart
23
-
24
21
  # the category axis
25
22
  # @return [CatAxis]
26
23
  def cat_axis
@@ -35,7 +32,7 @@ module Axlsx
35
32
  end
36
33
  alias :valAxis :val_axis
37
34
 
38
- # must be one of [:percentStacked, :clustered, :standard, :stacked]
35
+ # must be one of [:percentStacked, :clustered, :standard, :stacked]
39
36
  # @return [Symbol]
40
37
  attr_reader :grouping
41
38
 
@@ -45,7 +42,7 @@ module Axlsx
45
42
  # @option options [Boolean] show_legend
46
43
  # @option options [Symbol] grouping
47
44
  # @see Chart
48
- def initialize(frame, options={})
45
+ def initialize(frame, options = {})
49
46
  @vary_colors = false
50
47
  @grouping = :standard
51
48
  super(frame, options)
@@ -66,7 +63,7 @@ module Axlsx
66
63
  def node_name
67
64
  path = self.class.to_s
68
65
  if i = path.rindex('::')
69
- path = path[(i+2)..-1]
66
+ path = path[(i + 2)..-1]
70
67
  end
71
68
  path[0] = path[0].chr.downcase
72
69
  path
@@ -1,11 +1,9 @@
1
- # encoding: UTF-8
2
1
  module Axlsx
3
2
  # A LineSeries defines the title, data and labels for line charts
4
3
  # @note The recommended way to manage series is to use Chart#add_series
5
4
  # @see Worksheet#add_chart
6
5
  # @see Chart#add_series
7
6
  class LineSeries < Series
8
-
9
7
  # The data for this series.
10
8
  # @return [ValAxisData]
11
9
  attr_reader :data
@@ -35,7 +33,7 @@ module Axlsx
35
33
  # @option options [Array, SimpleTypedList] data
36
34
  # @option options [Array, SimpleTypedList] labels
37
35
  # @param [Chart] chart
38
- def initialize(chart, options={})
36
+ def initialize(chart, options = {})
39
37
  @show_marker = false
40
38
  @marker_symbol = options[:marker_symbol] ? options[:marker_symbol] : :default
41
39
  @smooth = false
@@ -105,6 +103,5 @@ module Axlsx
105
103
 
106
104
  # assigns the labels for this series
107
105
  def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
108
-
109
106
  end
110
107
  end
@@ -1,10 +1,8 @@
1
- # encoding: UTF-8
2
1
  module Axlsx
3
2
  # The Marker class defines a point in the worksheet that drawing anchors attach to.
4
3
  # @note The recommended way to manage markers is Worksheet#add_chart Markers are created for a two cell anchor based on the :start and :end options.
5
4
  # @see Worksheet#add_chart
6
5
  class Marker
7
-
8
6
  include Axlsx::OptionsParser
9
7
 
10
8
  # Creates a new Marker object
@@ -12,7 +10,7 @@ module Axlsx
12
10
  # @option options [Integer] colOff
13
11
  # @option options [Integer] row
14
12
  # @option options [Integer] rowOff
15
- def initialize(options={})
13
+ def initialize(options = {})
16
14
  @col, @colOff, @row, @rowOff = 0, 0, 0, 0
17
15
  parse_options options
18
16
  end
@@ -33,7 +31,7 @@ module Axlsx
33
31
  # @return [Integer]
34
32
  attr_reader :rowOff
35
33
 
36
- # @see col
34
+ # @see col
37
35
  def col=(v) Axlsx::validate_unsigned_int v; @col = v end
38
36
  # @see colOff
39
37
  def colOff=(v) Axlsx::validate_int v; @colOff = v end
@@ -47,7 +45,7 @@ module Axlsx
47
45
  # or an Array.
48
46
  # @param row the row of the marker. This is ignored if the col parameter is a Cell or
49
47
  # String or Array.
50
- def coord(col, row=0)
48
+ def coord(col, row = 0)
51
49
  coordinates = parse_coord_args(col, row)
52
50
  self.col = coordinates[0]
53
51
  self.row = coordinates[1]
@@ -61,11 +59,12 @@ module Axlsx
61
59
  str << ('<xdr:' << k.to_s << '>' << self.send(k).to_s << '</xdr:' << k.to_s << '>')
62
60
  end
63
61
  end
62
+
64
63
  private
65
64
 
66
65
  # handles multiple inputs for setting the position of a marker
67
66
  # @see Chart#start_at
68
- def parse_coord_args(x, y=0)
67
+ def parse_coord_args(x, y = 0)
69
68
  if x.is_a?(String)
70
69
  x, y = *Axlsx::name_to_indices(x)
71
70
  end
@@ -77,8 +76,5 @@ module Axlsx
77
76
  end
78
77
  [x, y]
79
78
  end
80
-
81
-
82
79
  end
83
-
84
80
  end
@@ -1,16 +1,13 @@
1
- # -*- coding: utf-8 -*-
2
1
  module Axlsx
3
-
4
- #This class specifies data for a particular data point. It is used for both numCache and numLit object
2
+ # This class specifies data for a particular data point. It is used for both numCache and numLit object
5
3
  class NumData
6
-
7
4
  include Axlsx::OptionsParser
8
5
 
9
6
  # creates a new NumVal object
10
7
  # @option options [String] formatCode
11
8
  # @option options [Array] :data
12
9
  # @see StrData
13
- def initialize(options={})
10
+ def initialize(options = {})
14
11
  @format_code = "General"
15
12
  @pt = SimpleTypedList.new NumVal
16
13
  parse_options options
@@ -22,7 +19,7 @@ module Axlsx
22
19
 
23
20
  # Creates the val objects for this data set. I am not overly confident this is going to play nicely with time and data types.
24
21
  # @param [Array] values An array of cells or values.
25
- def data=(values=[])
22
+ def data=(values = [])
26
23
  @tag_name = values.first.is_a?(Cell) ? :numCache : :numLit
27
24
  values.each do |value|
28
25
  value = value.is_formula? ? 0 : value.value if value.is_a?(Cell)
@@ -31,7 +28,7 @@ module Axlsx
31
28
  end
32
29
 
33
30
  # @see format_code
34
- def format_code=(v='General')
31
+ def format_code=(v = 'General')
35
32
  Axlsx::validate_string(v)
36
33
  @format_code = v
37
34
  end
@@ -46,7 +43,5 @@ module Axlsx
46
43
  end
47
44
  str << ('</c:' << @tag_name.to_s << '>')
48
45
  end
49
-
50
46
  end
51
-
52
47
  end
@@ -1,14 +1,12 @@
1
1
  module Axlsx
2
-
3
2
  # A numeric data source for use by charts.
4
3
  class NumDataSource
5
-
6
4
  include Axlsx::OptionsParser
7
5
 
8
6
  # creates a new NumDataSource object
9
7
  # @option options [Array] data An array of Cells or Numeric objects
10
8
  # @option options [Symbol] tag_name see tag_name
11
- def initialize(options={})
9
+ def initialize(options = {})
12
10
  # override these three in child classes
13
11
  @data_type ||= NumData
14
12
  @tag_name ||= :val
@@ -22,7 +20,6 @@ module Axlsx
22
20
  parse_options options
23
21
  end
24
22
 
25
-
26
23
  # The tag name to use when serializing this data source.
27
24
  # Only items defined in allowed_tag_names are allowed
28
25
  # @return [Symbol]
@@ -36,7 +33,7 @@ module Axlsx
36
33
  [:yVal, :val, :bubbleSize]
37
34
  end
38
35
 
39
- # sets the tag name for this data source
36
+ # sets the tag name for this data source
40
37
  # @param [Symbol] v One of the allowed_tag_names
41
38
  def tag_name=(v)
42
39
  Axlsx::RestrictionValidator.validate "#{self.class.name}.tag_name", self.class.allowed_tag_names, v
@@ -45,7 +42,7 @@ module Axlsx
45
42
 
46
43
  # serialize the object
47
44
  # @param [String] str
48
- def to_xml_string(str="")
45
+ def to_xml_string(str = "")
49
46
  str << ('<c:' << tag_name.to_s << '>')
50
47
  if @f
51
48
  str << ('<c:' << @ref_tag_name.to_s << '>')
@@ -59,4 +56,3 @@ module Axlsx
59
56
  end
60
57
  end
61
58
  end
62
-
@@ -1,9 +1,6 @@
1
- # -*- coding: utf-8 -*-
2
1
  module Axlsx
3
-
4
- #This class specifies data for a particular data point.
2
+ # This class specifies data for a particular data point.
5
3
  class NumVal < StrVal
6
-
7
4
  # A string representing the format code to apply.
8
5
  # For more information see see the SpreadsheetML numFmt element's (§18.8.30) formatCode attribute.
9
6
  # @return [String]
@@ -12,7 +9,7 @@ module Axlsx
12
9
  # creates a new NumVal object
13
10
  # @option options [String] formatCode
14
11
  # @option options [Integer] v
15
- def initialize(options={})
12
+ def initialize(options = {})
16
13
  @format_code = "General"
17
14
  super(options)
18
15
  end
@@ -1,11 +1,9 @@
1
- # encoding: UTF-8
2
1
  module Axlsx
3
2
  # This class details a single cell anchor for drawings.
4
3
  # @note The recommended way to manage drawings, images and charts is Worksheet#add_chart or Worksheet#add_image.
5
4
  # @see Worksheet#add_chart
6
5
  # @see Worksheet#add_image
7
6
  class OneCellAnchor
8
-
9
7
  include Axlsx::OptionsParser
10
8
 
11
9
  # Creates a new OneCellAnchor object and an Pic associated with it.
@@ -16,7 +14,7 @@ module Axlsx
16
14
  # @option options [String] image_src the file location of the image you will render
17
15
  # @option options [String] name the name attribute for the rendered image
18
16
  # @option options [String] descr the description of the image rendered
19
- def initialize(drawing, options={})
17
+ def initialize(drawing, options = {})
20
18
  @drawing = drawing
21
19
  @width = 0
22
20
  @height = 0
@@ -54,9 +52,10 @@ module Axlsx
54
52
  # We just 'figure it out' for you.
55
53
  # @param [Array, String, Cell, Integer] x Accepts many inputs for defining the starting position of the cell.
56
54
  # @param [Integer] y When x is an integer, this value is used for the row index at which the anchor starts.
57
- def start_at(x, y=0)
55
+ def start_at(x, y = 0)
58
56
  from.coord x, y
59
57
  end
58
+
60
59
  #
61
60
  # @see height
62
61
  def height=(v) Axlsx::validate_unsigned_int(v); @height = v; end
@@ -92,8 +91,7 @@ module Axlsx
92
91
  def ext
93
92
  cy = @height * 914400 / 96
94
93
  cx = @width * 914400 / 96
95
- {:cy=>cy, :cx=>cx}
94
+ { :cy => cy, :cx => cx }
96
95
  end
97
-
98
96
  end
99
97
  end