caxlsx 3.2.0 → 3.3.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.
Files changed (300) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +385 -354
  5. data/LICENSE +21 -21
  6. data/README.md +165 -168
  7. data/Rakefile +29 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
  10. data/lib/axlsx/content_type/content_type.rb +26 -26
  11. data/lib/axlsx/content_type/default.rb +25 -25
  12. data/lib/axlsx/content_type/override.rb +25 -25
  13. data/lib/axlsx/doc_props/app.rb +235 -235
  14. data/lib/axlsx/doc_props/core.rb +39 -39
  15. data/lib/axlsx/drawing/area_chart.rb +99 -99
  16. data/lib/axlsx/drawing/area_series.rb +110 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +26 -26
  18. data/lib/axlsx/drawing/axes.rb +61 -61
  19. data/lib/axlsx/drawing/axis.rb +190 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +148 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -138
  22. data/lib/axlsx/drawing/bar_series.rb +97 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +299 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +91 -90
  28. data/lib/axlsx/drawing/drawing.rb +167 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +54 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +100 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
  32. data/lib/axlsx/drawing/line_chart.rb +99 -99
  33. data/lib/axlsx/drawing/line_series.rb +110 -110
  34. data/lib/axlsx/drawing/marker.rb +84 -84
  35. data/lib/axlsx/drawing/num_data.rb +52 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +62 -62
  37. data/lib/axlsx/drawing/num_val.rb +34 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
  39. data/lib/axlsx/drawing/pic.rb +211 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +42 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
  42. data/lib/axlsx/drawing/pie_series.rb +74 -74
  43. data/lib/axlsx/drawing/scaling.rb +60 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +74 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +129 -129
  46. data/lib/axlsx/drawing/ser_axis.rb +45 -45
  47. data/lib/axlsx/drawing/series.rb +69 -69
  48. data/lib/axlsx/drawing/series_title.rb +25 -25
  49. data/lib/axlsx/drawing/str_data.rb +42 -42
  50. data/lib/axlsx/drawing/str_val.rb +34 -34
  51. data/lib/axlsx/drawing/title.rb +107 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
  53. data/lib/axlsx/drawing/val_axis.rb +37 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +42 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +66 -66
  57. data/lib/axlsx/package.rb +398 -388
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -73
  61. data/lib/axlsx/stylesheet/border_pr.rb +71 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +72 -72
  65. data/lib/axlsx/stylesheet/color.rb +76 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +79 -79
  67. data/lib/axlsx/stylesheet/fill.rb +35 -35
  68. data/lib/axlsx/stylesheet/font.rb +156 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
  73. data/lib/axlsx/stylesheet/styles.rb +535 -494
  74. data/lib/axlsx/stylesheet/table_style.rb +54 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +46 -46
  77. data/lib/axlsx/stylesheet/xf.rb +147 -147
  78. data/lib/axlsx/util/accessors.rb +64 -64
  79. data/lib/axlsx/util/constants.rb +416 -410
  80. data/lib/axlsx/util/mime_type_utils.rb +11 -11
  81. data/lib/axlsx/util/options_parser.rb +16 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +89 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +179 -179
  84. data/lib/axlsx/util/storage.rb +146 -146
  85. data/lib/axlsx/util/validators.rb +312 -312
  86. data/lib/axlsx/util/zip_command.rb +73 -73
  87. data/lib/axlsx/version.rb +5 -5
  88. data/lib/axlsx/workbook/defined_name.rb +128 -128
  89. data/lib/axlsx/workbook/defined_names.rb +21 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
  91. data/lib/axlsx/workbook/workbook.rb +425 -395
  92. data/lib/axlsx/workbook/workbook_view.rb +80 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +22 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
  97. data/lib/axlsx/workbook/worksheet/border_creator.rb +76 -0
  98. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  99. data/lib/axlsx/workbook/worksheet/cell.rb +532 -506
  100. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  101. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  102. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  103. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  104. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  105. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  106. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  107. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  108. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  110. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  111. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  112. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  113. data/lib/axlsx/workbook/worksheet/data_validation.rb +267 -246
  114. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  115. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  116. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  117. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  118. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  119. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  120. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  121. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  122. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  123. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  124. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  125. data/lib/axlsx/workbook/worksheet/pivot_table.rb +335 -296
  126. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  127. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  128. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  129. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  130. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  131. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  132. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  133. data/lib/axlsx/workbook/worksheet/row.rb +164 -164
  134. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  135. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  136. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  137. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  138. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  139. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  140. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  141. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  142. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  143. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  144. data/lib/axlsx/workbook/worksheet/worksheet.rb +829 -786
  145. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  148. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  149. data/lib/axlsx.rb +204 -185
  150. data/lib/caxlsx.rb +2 -2
  151. data/lib/schema/dc.xsd +118 -118
  152. data/lib/schema/dcmitype.xsd +51 -51
  153. data/lib/schema/dcterms.xsd +331 -331
  154. data/lib/schema/dml-chartDrawing.xsd +146 -146
  155. data/lib/schema/dml-compatibility.xsd +14 -14
  156. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  157. data/lib/schema/dml-main.xsd +3048 -3048
  158. data/lib/schema/dml-picture.xsd +23 -23
  159. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  160. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  161. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  162. data/lib/schema/shared-bibliography.xsd +144 -144
  163. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  164. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  165. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  166. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  167. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  168. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  169. data/lib/schema/shared-relationshipReference.xsd +25 -25
  170. data/lib/schema/vml-main.xsd +569 -569
  171. data/lib/schema/vml-officeDrawing.xsd +509 -509
  172. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  173. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  174. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  175. data/lib/schema/xml.xsd +116 -116
  176. metadata +5 -252
  177. data/test/benchmark.rb +0 -72
  178. data/test/content_type/tc_content_type.rb +0 -76
  179. data/test/content_type/tc_default.rb +0 -16
  180. data/test/content_type/tc_override.rb +0 -14
  181. data/test/doc_props/tc_app.rb +0 -43
  182. data/test/doc_props/tc_core.rb +0 -42
  183. data/test/drawing/tc_area_chart.rb +0 -39
  184. data/test/drawing/tc_area_series.rb +0 -71
  185. data/test/drawing/tc_axes.rb +0 -8
  186. data/test/drawing/tc_axis.rb +0 -112
  187. data/test/drawing/tc_bar_3D_chart.rb +0 -86
  188. data/test/drawing/tc_bar_chart.rb +0 -86
  189. data/test/drawing/tc_bar_series.rb +0 -46
  190. data/test/drawing/tc_bubble_chart.rb +0 -44
  191. data/test/drawing/tc_bubble_series.rb +0 -21
  192. data/test/drawing/tc_cat_axis.rb +0 -31
  193. data/test/drawing/tc_cat_axis_data.rb +0 -27
  194. data/test/drawing/tc_chart.rb +0 -123
  195. data/test/drawing/tc_d_lbls.rb +0 -57
  196. data/test/drawing/tc_data_source.rb +0 -23
  197. data/test/drawing/tc_drawing.rb +0 -80
  198. data/test/drawing/tc_graphic_frame.rb +0 -27
  199. data/test/drawing/tc_hyperlink.rb +0 -64
  200. data/test/drawing/tc_line_3d_chart.rb +0 -47
  201. data/test/drawing/tc_line_chart.rb +0 -39
  202. data/test/drawing/tc_line_series.rb +0 -71
  203. data/test/drawing/tc_marker.rb +0 -44
  204. data/test/drawing/tc_named_axis_data.rb +0 -27
  205. data/test/drawing/tc_num_data.rb +0 -31
  206. data/test/drawing/tc_num_val.rb +0 -29
  207. data/test/drawing/tc_one_cell_anchor.rb +0 -66
  208. data/test/drawing/tc_pic.rb +0 -103
  209. data/test/drawing/tc_picture_locking.rb +0 -72
  210. data/test/drawing/tc_pie_3D_chart.rb +0 -28
  211. data/test/drawing/tc_pie_series.rb +0 -33
  212. data/test/drawing/tc_scaling.rb +0 -36
  213. data/test/drawing/tc_scatter_chart.rb +0 -48
  214. data/test/drawing/tc_scatter_series.rb +0 -74
  215. data/test/drawing/tc_ser_axis.rb +0 -31
  216. data/test/drawing/tc_series.rb +0 -23
  217. data/test/drawing/tc_series_title.rb +0 -54
  218. data/test/drawing/tc_str_data.rb +0 -18
  219. data/test/drawing/tc_str_val.rb +0 -30
  220. data/test/drawing/tc_title.rb +0 -70
  221. data/test/drawing/tc_two_cell_anchor.rb +0 -36
  222. data/test/drawing/tc_val_axis.rb +0 -24
  223. data/test/drawing/tc_view_3D.rb +0 -54
  224. data/test/drawing/tc_vml_drawing.rb +0 -25
  225. data/test/drawing/tc_vml_shape.rb +0 -106
  226. data/test/fixtures/image1.gif +0 -0
  227. data/test/fixtures/image1.jpeg +0 -0
  228. data/test/fixtures/image1.jpg +0 -0
  229. data/test/fixtures/image1.png +0 -0
  230. data/test/fixtures/image1_fake.jpg +0 -0
  231. data/test/profile.rb +0 -24
  232. data/test/rels/tc_relationship.rb +0 -52
  233. data/test/rels/tc_relationships.rb +0 -37
  234. data/test/stylesheet/tc_border.rb +0 -37
  235. data/test/stylesheet/tc_border_pr.rb +0 -32
  236. data/test/stylesheet/tc_cell_alignment.rb +0 -81
  237. data/test/stylesheet/tc_cell_protection.rb +0 -29
  238. data/test/stylesheet/tc_cell_style.rb +0 -57
  239. data/test/stylesheet/tc_color.rb +0 -43
  240. data/test/stylesheet/tc_dxf.rb +0 -81
  241. data/test/stylesheet/tc_fill.rb +0 -18
  242. data/test/stylesheet/tc_font.rb +0 -133
  243. data/test/stylesheet/tc_gradient_fill.rb +0 -72
  244. data/test/stylesheet/tc_gradient_stop.rb +0 -31
  245. data/test/stylesheet/tc_num_fmt.rb +0 -30
  246. data/test/stylesheet/tc_pattern_fill.rb +0 -43
  247. data/test/stylesheet/tc_styles.rb +0 -309
  248. data/test/stylesheet/tc_table_style.rb +0 -44
  249. data/test/stylesheet/tc_table_style_element.rb +0 -45
  250. data/test/stylesheet/tc_table_styles.rb +0 -29
  251. data/test/stylesheet/tc_xf.rb +0 -120
  252. data/test/tc_axlsx.rb +0 -109
  253. data/test/tc_helper.rb +0 -10
  254. data/test/tc_package.rb +0 -317
  255. data/test/util/tc_mime_type_utils.rb +0 -13
  256. data/test/util/tc_serialized_attributes.rb +0 -19
  257. data/test/util/tc_simple_typed_list.rb +0 -77
  258. data/test/util/tc_validators.rb +0 -210
  259. data/test/workbook/tc_defined_name.rb +0 -49
  260. data/test/workbook/tc_shared_strings_table.rb +0 -59
  261. data/test/workbook/tc_workbook.rb +0 -165
  262. data/test/workbook/tc_workbook_view.rb +0 -50
  263. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
  264. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
  265. data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
  266. data/test/workbook/worksheet/tc_break.rb +0 -49
  267. data/test/workbook/worksheet/tc_cell.rb +0 -465
  268. data/test/workbook/worksheet/tc_cfvo.rb +0 -31
  269. data/test/workbook/worksheet/tc_col.rb +0 -93
  270. data/test/workbook/worksheet/tc_color_scale.rb +0 -58
  271. data/test/workbook/worksheet/tc_comment.rb +0 -72
  272. data/test/workbook/worksheet/tc_comments.rb +0 -57
  273. data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
  274. data/test/workbook/worksheet/tc_data_bar.rb +0 -46
  275. data/test/workbook/worksheet/tc_data_validation.rb +0 -265
  276. data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
  277. data/test/workbook/worksheet/tc_header_footer.rb +0 -151
  278. data/test/workbook/worksheet/tc_icon_set.rb +0 -45
  279. data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
  280. data/test/workbook/worksheet/tc_page_margins.rb +0 -97
  281. data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
  282. data/test/workbook/worksheet/tc_page_setup.rb +0 -143
  283. data/test/workbook/worksheet/tc_pane.rb +0 -54
  284. data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
  285. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
  286. data/test/workbook/worksheet/tc_print_options.rb +0 -72
  287. data/test/workbook/worksheet/tc_protected_range.rb +0 -17
  288. data/test/workbook/worksheet/tc_rich_text.rb +0 -44
  289. data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
  290. data/test/workbook/worksheet/tc_row.rb +0 -160
  291. data/test/workbook/worksheet/tc_selection.rb +0 -55
  292. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
  293. data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
  294. data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
  295. data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
  296. data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
  297. data/test/workbook/worksheet/tc_table.rb +0 -77
  298. data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
  299. data/test/workbook/worksheet/tc_worksheet.rb +0 -632
  300. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
@@ -1,34 +1,34 @@
1
- # -*- coding: utf-8 -*-
2
- module Axlsx
3
-
4
- #This class specifies data for a particular data point.
5
- class StrVal
6
-
7
- include Axlsx::OptionsParser
8
-
9
- # creates a new StrVal object
10
- # @option options [String] v
11
- def initialize(options={})
12
- @v = ""
13
- @idx = 0
14
- parse_options options
15
- end
16
-
17
- # a string value.
18
- # @return [String]
19
- attr_reader :v
20
-
21
- # @see v
22
- def v=(v)
23
- @v = v.to_s
24
- end
25
-
26
- # serialize the object
27
- def to_xml_string(idx, str = "")
28
- Axlsx::validate_unsigned_int(idx)
29
- if !v.to_s.empty?
30
- str << ('<c:pt idx="' << idx.to_s << '"><c:v>' << ::CGI.escapeHTML(v.to_s) << '</c:v></c:pt>')
31
- end
32
- end
33
- end
34
- end
1
+ # -*- coding: utf-8 -*-
2
+ module Axlsx
3
+
4
+ #This class specifies data for a particular data point.
5
+ class StrVal
6
+
7
+ include Axlsx::OptionsParser
8
+
9
+ # creates a new StrVal object
10
+ # @option options [String] v
11
+ def initialize(options={})
12
+ @v = ""
13
+ @idx = 0
14
+ parse_options options
15
+ end
16
+
17
+ # a string value.
18
+ # @return [String]
19
+ attr_reader :v
20
+
21
+ # @see v
22
+ def v=(v)
23
+ @v = v.to_s
24
+ end
25
+
26
+ # serialize the object
27
+ def to_xml_string(idx, str = "")
28
+ Axlsx::validate_unsigned_int(idx)
29
+ if !v.to_s.empty?
30
+ str << ('<c:pt idx="' << idx.to_s << '"><c:v>' << ::CGI.escapeHTML(v.to_s) << '</c:v></c:pt>')
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,97 +1,107 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # A Title stores information about the title of a chart
4
- class Title
5
-
6
- # The text to be shown. Setting this property directly with a string will remove the cell reference.
7
- # @return [String]
8
- attr_reader :text
9
-
10
- # Text size property
11
- # @return [String]
12
- attr_reader :text_size
13
-
14
- # The cell that holds the text for the title. Setting this property will automatically update the text attribute.
15
- # @return [Cell]
16
- attr_reader :cell
17
-
18
- # Creates a new Title object
19
- # @param [String, Cell] title The cell or string to be used for the chart's title
20
- def initialize(title="", title_size="")
21
- self.cell = title if title.is_a?(Cell)
22
- self.text = title.to_s unless title.is_a?(Cell)
23
- if title_size.to_s.empty?
24
- self.text_size = "1600"
25
- else
26
- self.text_size = title_size.to_s
27
- end
28
- end
29
-
30
- # @see text
31
- def text=(v)
32
- DataTypeValidator.validate 'Title.text', String, v
33
- @text = v
34
- @cell = nil
35
- v
36
- end
37
-
38
- # @see text_size
39
- def text_size=(v)
40
- DataTypeValidator.validate 'Title.text_size', String, v
41
- @text_size = v
42
- @cell = nil
43
- v
44
- end
45
-
46
- # @see cell
47
- def cell=(v)
48
- DataTypeValidator.validate 'Title.text', Cell, v
49
- @cell = v
50
- @text = v.value.to_s
51
- v
52
- end
53
-
54
- # Not implemented at this time.
55
- #def layout=(v) DataTypeValidator.validate 'Title.layout', Layout, v; @layout = v; end
56
- #def overlay=(v) Axlsx::validate_boolean v; @overlay=v; end
57
- #def spPr=(v) DataTypeValidator.validate 'Title.spPr', SpPr, v; @spPr = v; end
58
-
59
- # Serializes the object
60
- # @param [String] str
61
- # @return [String]
62
- def to_xml_string(str = '')
63
- str << '<c:title>'
64
- unless @text.empty?
65
- clean_value = Axlsx::trust_input ? @text.to_s : ::CGI.escapeHTML(Axlsx::sanitize(@text.to_s))
66
- str << '<c:tx>'
67
- if @cell.is_a?(Cell)
68
- str << '<c:strRef>'
69
- str << ('<c:f>' << Axlsx::cell_range([@cell]) << '</c:f>')
70
- str << '<c:strCache>'
71
- str << '<c:ptCount val="1"/>'
72
- str << '<c:pt idx="0">'
73
- str << ('<c:v>' << clean_value << '</c:v>')
74
- str << '</c:pt>'
75
- str << '</c:strCache>'
76
- str << '</c:strRef>'
77
- else
78
- str << '<c:rich>'
79
- str << '<a:bodyPr/>'
80
- str << '<a:lstStyle/>'
81
- str << '<a:p>'
82
- str << '<a:r>'
83
- str << ('<a:rPr sz="' << @text_size.to_s << '"/>')
84
- str << ('<a:t>' << clean_value << '</a:t>')
85
- str << '</a:r>'
86
- str << '</a:p>'
87
- str << '</c:rich>'
88
- end
89
- str << '</c:tx>'
90
- end
91
- str << '<c:layout/>'
92
- str << '<c:overlay val="0"/>'
93
- str << '</c:title>'
94
- end
95
-
96
- end
97
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # A Title stores information about the title of a chart
4
+ class Title
5
+
6
+ # The text to be shown. Setting this property directly with a string will remove the cell reference.
7
+ # @return [String]
8
+ attr_reader :text
9
+
10
+ # Text size property
11
+ # @return [String]
12
+ attr_reader :text_size
13
+
14
+ # The cell that holds the text for the title. Setting this property will automatically update the text attribute.
15
+ # @return [Cell]
16
+ attr_reader :cell
17
+
18
+ # Creates a new Title object
19
+ # @param [String, Cell] title The cell or string to be used for the chart's title
20
+ def initialize(title="", title_size="")
21
+ self.cell = title if title.is_a?(Cell)
22
+ self.text = title.to_s unless title.is_a?(Cell)
23
+ if title_size.to_s.empty?
24
+ self.text_size = "1600"
25
+ else
26
+ self.text_size = title_size.to_s
27
+ end
28
+ end
29
+
30
+ # @see text
31
+ def text=(v)
32
+ DataTypeValidator.validate 'Title.text', String, v
33
+ @text = v
34
+ @cell = nil
35
+ v
36
+ end
37
+
38
+ # @see text_size
39
+ def text_size=(v)
40
+ DataTypeValidator.validate 'Title.text_size', String, v
41
+ @text_size = v
42
+ @cell = nil
43
+ v
44
+ end
45
+
46
+ # @see cell
47
+ def cell=(v)
48
+ DataTypeValidator.validate 'Title.text', Cell, v
49
+ @cell = v
50
+ @text = v.value.to_s
51
+ v
52
+ end
53
+
54
+ # Check if the title is empty.
55
+ #
56
+ # A title is considered empty if it is an empty string. If the title references a cell it is *not* empty,
57
+ # even if the referenced cell is blank (because the cell’s value could still change later).
58
+ #
59
+ # @return [Boolean]
60
+ def empty?
61
+ @text.empty? && @cell.nil?
62
+ end
63
+
64
+ # Not implemented at this time.
65
+ #def layout=(v) DataTypeValidator.validate 'Title.layout', Layout, v; @layout = v; end
66
+ #def overlay=(v) Axlsx::validate_boolean v; @overlay=v; end
67
+ #def spPr=(v) DataTypeValidator.validate 'Title.spPr', SpPr, v; @spPr = v; end
68
+
69
+ # Serializes the object
70
+ # @param [String] str
71
+ # @return [String]
72
+ def to_xml_string(str = '')
73
+ str << '<c:title>'
74
+ unless empty?
75
+ clean_value = Axlsx::trust_input ? @text.to_s : ::CGI.escapeHTML(Axlsx::sanitize(@text.to_s))
76
+ str << '<c:tx>'
77
+ if @cell.is_a?(Cell)
78
+ str << '<c:strRef>'
79
+ str << ('<c:f>' << Axlsx::cell_range([@cell]) << '</c:f>')
80
+ str << '<c:strCache>'
81
+ str << '<c:ptCount val="1"/>'
82
+ str << '<c:pt idx="0">'
83
+ str << ('<c:v>' << clean_value << '</c:v>')
84
+ str << '</c:pt>'
85
+ str << '</c:strCache>'
86
+ str << '</c:strRef>'
87
+ else
88
+ str << '<c:rich>'
89
+ str << '<a:bodyPr/>'
90
+ str << '<a:lstStyle/>'
91
+ str << '<a:p>'
92
+ str << '<a:r>'
93
+ str << ('<a:rPr sz="' << @text_size.to_s << '"/>')
94
+ str << ('<a:t>' << clean_value << '</a:t>')
95
+ str << '</a:r>'
96
+ str << '</a:p>'
97
+ str << '</c:rich>'
98
+ end
99
+ str << '</c:tx>'
100
+ end
101
+ str << '<c:layout/>'
102
+ str << '<c:overlay val="0"/>'
103
+ str << '</c:title>'
104
+ end
105
+
106
+ end
107
+ end
@@ -1,97 +1,97 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # This class details the anchor points for drawings.
4
- # @note The recommended way to manage drawings and charts is Worksheet#add_chart. Anchors are specified by the :start_at and :end_at options to that method.
5
- # @see Worksheet#add_chart
6
- class TwoCellAnchor
7
-
8
- include Axlsx::OptionsParser
9
-
10
- # A marker that defines the from cell anchor. The default from column and row are 0 and 0 respectively
11
- # @return [Marker]
12
- attr_reader :from
13
- # A marker that returns the to cell anchor. The default to column and row are 5 and 10 respectively
14
- # @return [Marker]
15
- attr_reader :to
16
-
17
- # The frame for your chart
18
- # @note this will be discontinued in version 2.0 please use object
19
- # @return [GraphicFrame]
20
- # attr_reader :graphic_frame
21
-
22
- # The object this anchor hosts
23
- # @return [Pic, GraphicFrame]
24
- attr_reader :object
25
-
26
- # The drawing that holds this anchor
27
- # @return [Drawing]
28
- attr_reader :drawing
29
-
30
- # Creates a new TwoCellAnchor object
31
- # c.start_at 5, 9
32
- # @param [Drawing] drawing
33
- # @option options [Array] :start_at the col, row to start at THIS IS DOCUMENTED BUT NOT IMPLEMENTED HERE!
34
- # @option options [Array] :end_at the col, row to end at
35
- def initialize(drawing, options={})
36
- @drawing = drawing
37
- drawing.anchors << self
38
- @from, @to = Marker.new, Marker.new(:col => 5, :row=>10)
39
- parse_options options
40
-
41
- # bit of a hack to work around the fact that the coords for start at and end at
42
- # are passed in as an array when specified in intialization options - however
43
- start_at(*options[:start_at]) if options[:start_at]
44
- end_at(*options[:end_at]) if options[:end_at]
45
- end
46
-
47
- # sets the col, row attributes for the from marker.
48
- # @note The recommended way to set the start position for graphical
49
- # objects is directly thru the object.
50
- # @see Chart#start_at
51
- def start_at(x, y=nil)
52
- from.coord x, y
53
- end
54
-
55
- # sets the col, row attributes for the to marker
56
- # @note the recommended way to set the to position for graphical
57
- # objects is directly thru the object
58
- # @see Char#end_at
59
- def end_at(x, y=nil)
60
- to.coord x, y
61
- end
62
-
63
- # Creates a graphic frame and chart object associated with this anchor
64
- # @return [Chart]
65
- def add_chart(chart_type, options)
66
- @object = GraphicFrame.new(self, chart_type, options)
67
- @object.chart
68
- end
69
-
70
- # Creates an image associated with this anchor.
71
- def add_pic(options={})
72
- @object = Pic.new(self, options)
73
- end
74
-
75
- # The index of this anchor in the drawing
76
- # @return [Integer]
77
- def index
78
- @drawing.anchors.index(self)
79
- end
80
-
81
- # Serializes the object
82
- # @param [String] str
83
- # @return [String]
84
- def to_xml_string(str = '')
85
- str << '<xdr:twoCellAnchor>'
86
- str << '<xdr:from>'
87
- from.to_xml_string str
88
- str << '</xdr:from>'
89
- str << '<xdr:to>'
90
- to.to_xml_string str
91
- str << '</xdr:to>'
92
- object.to_xml_string(str)
93
- str << '<xdr:clientData/>'
94
- str << '</xdr:twoCellAnchor>'
95
- end
96
- end
97
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # This class details the anchor points for drawings.
4
+ # @note The recommended way to manage drawings and charts is Worksheet#add_chart. Anchors are specified by the :start_at and :end_at options to that method.
5
+ # @see Worksheet#add_chart
6
+ class TwoCellAnchor
7
+
8
+ include Axlsx::OptionsParser
9
+
10
+ # A marker that defines the from cell anchor. The default from column and row are 0 and 0 respectively
11
+ # @return [Marker]
12
+ attr_reader :from
13
+ # A marker that returns the to cell anchor. The default to column and row are 5 and 10 respectively
14
+ # @return [Marker]
15
+ attr_reader :to
16
+
17
+ # The frame for your chart
18
+ # @note this will be discontinued in version 2.0 please use object
19
+ # @return [GraphicFrame]
20
+ # attr_reader :graphic_frame
21
+
22
+ # The object this anchor hosts
23
+ # @return [Pic, GraphicFrame]
24
+ attr_reader :object
25
+
26
+ # The drawing that holds this anchor
27
+ # @return [Drawing]
28
+ attr_reader :drawing
29
+
30
+ # Creates a new TwoCellAnchor object
31
+ # c.start_at 5, 9
32
+ # @param [Drawing] drawing
33
+ # @option options [Array] :start_at the col, row to start at THIS IS DOCUMENTED BUT NOT IMPLEMENTED HERE!
34
+ # @option options [Array] :end_at the col, row to end at
35
+ def initialize(drawing, options={})
36
+ @drawing = drawing
37
+ drawing.anchors << self
38
+ @from, @to = Marker.new, Marker.new(:col => 5, :row=>10)
39
+ parse_options options
40
+
41
+ # bit of a hack to work around the fact that the coords for start at and end at
42
+ # are passed in as an array when specified in intialization options - however
43
+ start_at(*options[:start_at]) if options[:start_at]
44
+ end_at(*options[:end_at]) if options[:end_at]
45
+ end
46
+
47
+ # sets the col, row attributes for the from marker.
48
+ # @note The recommended way to set the start position for graphical
49
+ # objects is directly thru the object.
50
+ # @see Chart#start_at
51
+ def start_at(x, y=nil)
52
+ from.coord x, y
53
+ end
54
+
55
+ # sets the col, row attributes for the to marker
56
+ # @note the recommended way to set the to position for graphical
57
+ # objects is directly thru the object
58
+ # @see Char#end_at
59
+ def end_at(x, y=nil)
60
+ to.coord x, y
61
+ end
62
+
63
+ # Creates a graphic frame and chart object associated with this anchor
64
+ # @return [Chart]
65
+ def add_chart(chart_type, options)
66
+ @object = GraphicFrame.new(self, chart_type, options)
67
+ @object.chart
68
+ end
69
+
70
+ # Creates an image associated with this anchor.
71
+ def add_pic(options={})
72
+ @object = Pic.new(self, options)
73
+ end
74
+
75
+ # The index of this anchor in the drawing
76
+ # @return [Integer]
77
+ def index
78
+ @drawing.anchors.index(self)
79
+ end
80
+
81
+ # Serializes the object
82
+ # @param [String] str
83
+ # @return [String]
84
+ def to_xml_string(str = '')
85
+ str << '<xdr:twoCellAnchor>'
86
+ str << '<xdr:from>'
87
+ from.to_xml_string str
88
+ str << '</xdr:from>'
89
+ str << '<xdr:to>'
90
+ to.to_xml_string str
91
+ str << '</xdr:to>'
92
+ object.to_xml_string(str)
93
+ str << '<xdr:clientData/>'
94
+ str << '</xdr:twoCellAnchor>'
95
+ end
96
+ end
97
+ end
@@ -1,37 +1,37 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # the ValAxis class defines a chart value axis.
4
- class ValAxis < Axis
5
-
6
- # This element specifies how the value axis crosses the category axis.
7
- # must be one of [:between, :midCat]
8
- # @return [Symbol]
9
- attr_reader :cross_between
10
- alias :crossBetween :cross_between
11
-
12
- # Creates a new ValAxis object
13
- # @option options [Symbol] crosses_between
14
- def initialize(options={})
15
- self.cross_between = :between
16
- super(options)
17
- end
18
-
19
- # @see cross_between
20
- def cross_between=(v)
21
- RestrictionValidator.validate "ValAxis.cross_between", [:between, :midCat], v
22
- @cross_between = v
23
- end
24
- alias :crossBetween= :cross_between=
25
-
26
- # Serializes the object
27
- # @param [String] str
28
- # @return [String]
29
- def to_xml_string(str = '')
30
- str << '<c:valAx>'
31
- super(str)
32
- str << ('<c:crossBetween val="' << @cross_between.to_s << '"/>')
33
- str << '</c:valAx>'
34
- end
35
-
36
- end
37
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # the ValAxis class defines a chart value axis.
4
+ class ValAxis < Axis
5
+
6
+ # This element specifies how the value axis crosses the category axis.
7
+ # must be one of [:between, :midCat]
8
+ # @return [Symbol]
9
+ attr_reader :cross_between
10
+ alias :crossBetween :cross_between
11
+
12
+ # Creates a new ValAxis object
13
+ # @option options [Symbol] crosses_between
14
+ def initialize(options={})
15
+ self.cross_between = :between
16
+ super(options)
17
+ end
18
+
19
+ # @see cross_between
20
+ def cross_between=(v)
21
+ RestrictionValidator.validate "ValAxis.cross_between", [:between, :midCat], v
22
+ @cross_between = v
23
+ end
24
+ alias :crossBetween= :cross_between=
25
+
26
+ # Serializes the object
27
+ # @param [String] str
28
+ # @return [String]
29
+ def to_xml_string(str = '')
30
+ str << '<c:valAx>'
31
+ super(str)
32
+ str << ('<c:crossBetween val="' << @cross_between.to_s << '"/>')
33
+ str << '</c:valAx>'
34
+ end
35
+
36
+ end
37
+ end