write_xlsx 1.12.3 → 1.15.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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +22 -0
  3. data/Changes +23 -0
  4. data/README.md +1 -1
  5. data/lib/write_xlsx/chart/area.rb +2 -2
  6. data/lib/write_xlsx/chart/axis.rb +55 -32
  7. data/lib/write_xlsx/chart/axis_writer.rb +528 -0
  8. data/lib/write_xlsx/chart/bar.rb +2 -2
  9. data/lib/write_xlsx/chart/caption.rb +16 -9
  10. data/lib/write_xlsx/chart/chart_area.rb +121 -0
  11. data/lib/write_xlsx/chart/column.rb +2 -2
  12. data/lib/write_xlsx/chart/d_pt_point_writer.rb +14 -0
  13. data/lib/write_xlsx/chart/doughnut.rb +0 -3
  14. data/lib/write_xlsx/chart/formatting_writer.rb +652 -0
  15. data/lib/write_xlsx/chart/initialization.rb +100 -0
  16. data/lib/write_xlsx/chart/line.rb +4 -3
  17. data/lib/write_xlsx/chart/pie.rb +6 -2
  18. data/lib/write_xlsx/chart/radar.rb +2 -2
  19. data/lib/write_xlsx/chart/scatter.rb +4 -3
  20. data/lib/write_xlsx/chart/series.rb +35 -15
  21. data/lib/write_xlsx/chart/series_data.rb +132 -0
  22. data/lib/write_xlsx/chart/series_writer.rb +318 -0
  23. data/lib/write_xlsx/chart/settings.rb +226 -0
  24. data/lib/write_xlsx/chart/stock.rb +2 -2
  25. data/lib/write_xlsx/chart/table.rb +50 -0
  26. data/lib/write_xlsx/chart/xml_writer.rb +305 -0
  27. data/lib/write_xlsx/chart.rb +286 -2477
  28. data/lib/write_xlsx/chartsheet.rb +35 -83
  29. data/lib/write_xlsx/constants.rb +11 -0
  30. data/lib/write_xlsx/drawing.rb +5 -3
  31. data/lib/write_xlsx/format/alignment_state.rb +39 -0
  32. data/lib/write_xlsx/format/alignment_style.rb +92 -0
  33. data/lib/write_xlsx/format/border_state.rb +47 -0
  34. data/lib/write_xlsx/format/border_style.rb +116 -0
  35. data/lib/write_xlsx/format/fill_state.rb +26 -0
  36. data/lib/write_xlsx/format/fill_style.rb +52 -0
  37. data/lib/write_xlsx/format/font_state.rb +74 -0
  38. data/lib/write_xlsx/format/font_style.rb +172 -0
  39. data/lib/write_xlsx/format/format_state.rb +65 -0
  40. data/lib/write_xlsx/format/number_format_state.rb +20 -0
  41. data/lib/write_xlsx/format/number_format_style.rb +28 -0
  42. data/lib/write_xlsx/format/protection_state.rb +20 -0
  43. data/lib/write_xlsx/format/protection_style.rb +28 -0
  44. data/lib/write_xlsx/format.rb +1093 -426
  45. data/lib/write_xlsx/formats.rb +0 -2
  46. data/lib/write_xlsx/image_property.rb +4 -1
  47. data/lib/write_xlsx/inserted_chart.rb +1 -1
  48. data/lib/write_xlsx/object_positioning.rb +203 -0
  49. data/lib/write_xlsx/package/app.rb +3 -3
  50. data/lib/write_xlsx/package/button.rb +6 -2
  51. data/lib/write_xlsx/package/comments.rb +11 -3
  52. data/lib/write_xlsx/package/conditional_format.rb +7 -3
  53. data/lib/write_xlsx/package/content_types.rb +2 -2
  54. data/lib/write_xlsx/package/core.rb +2 -2
  55. data/lib/write_xlsx/package/custom.rb +3 -2
  56. data/lib/write_xlsx/package/metadata.rb +2 -2
  57. data/lib/write_xlsx/package/packager.rb +0 -3
  58. data/lib/write_xlsx/package/relationships.rb +2 -2
  59. data/lib/write_xlsx/package/rich_value.rb +4 -2
  60. data/lib/write_xlsx/package/rich_value_rel.rb +2 -2
  61. data/lib/write_xlsx/package/rich_value_structure.rb +2 -2
  62. data/lib/write_xlsx/package/rich_value_types.rb +3 -3
  63. data/lib/write_xlsx/package/shared_strings.rb +2 -2
  64. data/lib/write_xlsx/package/styles.rb +13 -9
  65. data/lib/write_xlsx/package/table.rb +8 -2
  66. data/lib/write_xlsx/package/theme.rb +0 -3
  67. data/lib/write_xlsx/package/vml.rb +2 -2
  68. data/lib/write_xlsx/page_setup.rb +192 -0
  69. data/lib/write_xlsx/shape.rb +97 -100
  70. data/lib/write_xlsx/sheets.rb +9 -4
  71. data/lib/write_xlsx/sparkline.rb +2 -2
  72. data/lib/write_xlsx/utility/cell_reference.rb +124 -0
  73. data/lib/write_xlsx/utility/chart_formatting.rb +262 -0
  74. data/lib/write_xlsx/utility/common.rb +44 -0
  75. data/lib/write_xlsx/utility/date_time.rb +113 -0
  76. data/lib/write_xlsx/utility/dimensions.rb +40 -0
  77. data/lib/write_xlsx/utility/drawing.rb +136 -0
  78. data/lib/write_xlsx/utility/rich_text.rb +184 -0
  79. data/lib/write_xlsx/utility/sheetname_quoting.rb +73 -0
  80. data/lib/write_xlsx/utility/string_width.rb +45 -0
  81. data/lib/write_xlsx/utility/url.rb +27 -0
  82. data/lib/write_xlsx/utility/xml_primitives.rb +32 -0
  83. data/lib/write_xlsx/version.rb +1 -1
  84. data/lib/write_xlsx/workbook/chart_data.rb +188 -0
  85. data/lib/write_xlsx/workbook/format_preparation.rb +199 -0
  86. data/lib/write_xlsx/workbook/initialization.rb +223 -0
  87. data/lib/write_xlsx/workbook/package_preparation.rb +231 -0
  88. data/lib/write_xlsx/workbook/workbook_writer.rb +164 -0
  89. data/lib/write_xlsx/workbook.rb +143 -981
  90. data/lib/write_xlsx/worksheet/asset_manager.rb +60 -0
  91. data/lib/write_xlsx/worksheet/autofilter.rb +390 -0
  92. data/lib/write_xlsx/worksheet/cell_data.rb +13 -6
  93. data/lib/write_xlsx/worksheet/cell_data_manager.rb +47 -0
  94. data/lib/write_xlsx/worksheet/cell_data_store.rb +61 -0
  95. data/lib/write_xlsx/worksheet/columns.rb +204 -0
  96. data/lib/write_xlsx/worksheet/comments_support.rb +61 -0
  97. data/lib/write_xlsx/worksheet/conditional_formats.rb +30 -0
  98. data/lib/write_xlsx/worksheet/data_validation.rb +9 -1
  99. data/lib/write_xlsx/worksheet/data_writing.rb +1017 -0
  100. data/lib/write_xlsx/worksheet/drawing_methods.rb +308 -0
  101. data/lib/write_xlsx/worksheet/drawing_preparation.rb +290 -0
  102. data/lib/write_xlsx/worksheet/drawing_relations.rb +76 -0
  103. data/lib/write_xlsx/worksheet/drawing_xml_writer.rb +50 -0
  104. data/lib/write_xlsx/worksheet/formatting.rb +418 -0
  105. data/lib/write_xlsx/worksheet/hyperlink.rb +9 -1
  106. data/lib/write_xlsx/worksheet/initialization.rb +146 -0
  107. data/lib/write_xlsx/worksheet/panes.rb +64 -0
  108. data/lib/write_xlsx/worksheet/print_options.rb +72 -0
  109. data/lib/write_xlsx/worksheet/protection.rb +65 -0
  110. data/lib/write_xlsx/worksheet/rich_text_helpers.rb +78 -0
  111. data/lib/write_xlsx/worksheet/row_col_sizing.rb +69 -0
  112. data/lib/write_xlsx/worksheet/rows.rb +84 -0
  113. data/lib/write_xlsx/worksheet/selection.rb +41 -0
  114. data/lib/write_xlsx/worksheet/xml_writer.rb +1246 -0
  115. data/lib/write_xlsx/worksheet.rb +376 -4530
  116. metadata +66 -4
  117. data/lib/write_xlsx/utility.rb +0 -986
  118. data/lib/write_xlsx/worksheet/page_setup.rb +0 -192
@@ -11,24 +11,47 @@
11
11
  # Convert to ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
12
12
  #
13
13
 
14
+ require 'forwardable'
14
15
  require 'write_xlsx/worksheet'
15
16
 
16
17
  module Writexlsx
17
18
  class Chartsheet < Worksheet
18
- include Writexlsx::Utility
19
+ extend Forwardable
19
20
 
20
21
  attr_writer :chart
21
22
 
23
+ def_delegators :@chart,
24
+ :add_series,
25
+ :set_x_axis,
26
+ :set_y_axis,
27
+ :set_x2_axis,
28
+ :set_y2_axis,
29
+ :set_title,
30
+ :set_legend,
31
+ :set_plotarea,
32
+ :set_chartarea,
33
+ :set_style,
34
+ :show_blanks_as,
35
+ :show_hidden_data,
36
+ :set_size,
37
+ :set_table,
38
+ :set_up_down_bars,
39
+ :set_drop_lines,
40
+ :set_high_low_lines
41
+
22
42
  def initialize(workbook, index, name)
23
43
  super
24
- @drawings = Drawings.new
25
- @is_chartsheet = true
26
- @chart = nil
27
- @charts = [1]
44
+ @drawings = Drawings.new
45
+ @is_chartsheet = true
46
+ @chart = nil
28
47
  @zoom_scale_normal = 0
29
48
  @page_setup.orientation = false
30
49
  end
31
50
 
51
+ def charts
52
+ [@chart].compact
53
+ end
54
+
32
55
  #
33
56
  # Assemble and write the XML file.
34
57
  #
@@ -91,88 +114,17 @@ module Writexlsx
91
114
  @chart.protection = 1
92
115
 
93
116
  # Turn off worksheet defaults.
94
- options[:sheet] = 0
117
+ options[:sheet] = 0
95
118
  options[:scenarios] = 1
96
119
 
97
120
  super(password, options)
98
121
  end
99
122
 
100
- ###############################################################################
101
123
  #
102
- # Encapsulated Chart methods.
124
+ # Set the option for displaying #N/A as an empty cell in a chart.
103
125
  #
104
- ###############################################################################
105
-
106
- def add_series(*args)
107
- @chart.add_series(*args)
108
- end
109
-
110
- def set_x_axis(*args)
111
- @chart.set_x_axis(*args)
112
- end
113
-
114
- def set_y_axis(*args)
115
- @chart.set_y_axis(*args)
116
- end
117
-
118
- def set_x2_axis(*args)
119
- @chart.set_x2_axis(*args)
120
- end
121
-
122
- def set_y2_axis(*args)
123
- @chart.set_y2_axis(*args)
124
- end
125
-
126
- def set_title(*args)
127
- @chart.set_title(*args)
128
- end
129
-
130
- def set_legend(*args)
131
- @chart.set_legend(*args)
132
- end
133
-
134
- def set_plotarea(*args)
135
- @chart.set_plotarea(*args)
136
- end
137
-
138
- def set_chartarea(*args)
139
- @chart.set_chartarea(*args)
140
- end
141
-
142
- def set_style(*args)
143
- @chart.set_style(*args)
144
- end
145
-
146
- def show_blanks_as(*args)
147
- @chart.show_blanks_as(*args)
148
- end
149
-
150
126
  def show_na_as_empty_cell
151
- @chart.show_na_as_empty_cell(*args)
152
- end
153
-
154
- def show_hidden_data(*args)
155
- @chart.show_hidden_data(*args)
156
- end
157
-
158
- def set_size(*args)
159
- @chart.set_size(*args)
160
- end
161
-
162
- def set_table(*args)
163
- @chart.set_table(*args)
164
- end
165
-
166
- def set_up_down_bars(*args)
167
- @chart.set_up_down_bars(*args)
168
- end
169
-
170
- def set_drop_lines(*args)
171
- @chart.set_drop_lines(*args)
172
- end
173
-
174
- def set_high_low_lines(*args)
175
- @chart.set_high_low_lines(*args)
127
+ @chart.show_na_as_empty_cell
176
128
  end
177
129
 
178
130
  #
@@ -181,7 +133,7 @@ module Writexlsx
181
133
  def prepare_chart(_index, chart_id, drawing_id) # :nodoc:
182
134
  @chart.id = chart_id - 1
183
135
 
184
- drawings = Drawings.new
136
+ drawings = Drawings.new
185
137
  @drawings = drawings
186
138
  @drawings.orientation = @page_setup.orientation
187
139
 
@@ -203,12 +155,12 @@ module Writexlsx
203
155
  # Write the <chartsheet> element. This is the root element of Chartsheet.
204
156
  #
205
157
  def write_chartsheet(&block) # :nodoc:
206
- schema = 'http://schemas.openxmlformats.org/'
207
- xmlns = schema + 'spreadsheetml/2006/main'
158
+ schema = 'http://schemas.openxmlformats.org/'
159
+ xmlns = schema + 'spreadsheetml/2006/main'
208
160
  xmlns_r = schema + 'officeDocument/2006/relationships'
209
161
 
210
162
  attributes = [
211
- ['xmlns', xmlns],
163
+ ['xmlns', xmlns],
212
164
  ['xmlns:r', xmlns_r]
213
165
  ]
214
166
 
@@ -0,0 +1,11 @@
1
+ # -*- coding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
4
+ module Writexlsx
5
+ module Constants
6
+ ROW_MAX = 1048576 # :nodoc:
7
+ COL_MAX = 16384 # :nodoc:
8
+ STR_MAX = 32767 # :nodoc:
9
+ SHEETNAME_MAX = 31 # :nodoc:
10
+ end
11
+ end
@@ -2,11 +2,13 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require 'write_xlsx/package/xml_writer_simple'
5
- require 'write_xlsx/utility'
5
+ require 'write_xlsx/utility/common'
6
+ require 'write_xlsx/utility/xml_primitives'
6
7
 
7
8
  module Writexlsx
8
9
  class Drawing
9
- include Writexlsx::Utility
10
+ include Writexlsx::Utility::Common
11
+ include Writexlsx::Utility::XmlPrimitives
10
12
 
11
13
  attr_accessor :type, :dimensions, :width, :height, :shape, :anchor, :rel_index, :url_rel_index, :name, :description
12
14
  attr_reader :tip, :decorative
@@ -871,7 +873,7 @@ module Writexlsx
871
873
  end
872
874
 
873
875
  class Drawings
874
- include Writexlsx::Utility
876
+ include Writexlsx::Utility::XmlPrimitives
875
877
 
876
878
  attr_writer :embedded, :orientation
877
879
 
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
4
+ module Writexlsx
5
+ class Format
6
+ class AlignmentState
7
+ attr_accessor :horizontal, :vertical,
8
+ :wrap, :justlast, :rotation,
9
+ :indent, :shrink, :merge_range,
10
+ :reading_order, :just_distrib
11
+
12
+ def initialize
13
+ @horizontal = 0
14
+ @vertical = 0
15
+ @wrap = 0
16
+ @justlast = 0
17
+ @rotation = 0
18
+ @indent = 0
19
+ @shrink = 0
20
+ @merge_range = 0
21
+ @reading_order = 0
22
+ @just_distrib = 0
23
+ end
24
+
25
+ def initialize_copy(other)
26
+ @horizontal = other.horizontal
27
+ @vertical = other.vertical
28
+ @wrap = other.wrap
29
+ @justlast = other.justlast
30
+ @rotation = other.rotation
31
+ @indent = other.indent
32
+ @shrink = other.shrink
33
+ @merge_range = other.merge_range
34
+ @reading_order = other.reading_order
35
+ @just_distrib = other.just_distrib
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,92 @@
1
+ # -*- coding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
4
+ module Writexlsx
5
+ class Format
6
+ class AlignmentStyle
7
+ def initialize(format)
8
+ @format = format
9
+ end
10
+
11
+ def horizontal
12
+ @format.state.alignment.horizontal
13
+ end
14
+
15
+ def horizontal=(value)
16
+ @format.state.alignment.horizontal = value
17
+ end
18
+
19
+ def wrap
20
+ @format.state.alignment.wrap
21
+ end
22
+
23
+ def wrap=(value)
24
+ @format.state.alignment.wrap = value
25
+ end
26
+
27
+ def vertical
28
+ @format.state.alignment.vertical
29
+ end
30
+
31
+ def vertical=(value)
32
+ @format.state.alignment.vertical = value
33
+ end
34
+
35
+ def justlast
36
+ @format.state.alignment.justlast
37
+ end
38
+
39
+ def justlast=(value)
40
+ @format.state.alignment.justlast = value
41
+ end
42
+
43
+ def rotation
44
+ @format.state.alignment.rotation
45
+ end
46
+
47
+ def rotation=(value)
48
+ @format.state.alignment.rotation = value
49
+ end
50
+
51
+ def indent
52
+ @format.state.alignment.indent
53
+ end
54
+
55
+ def indent=(value)
56
+ @format.state.alignment.indent = value
57
+ end
58
+
59
+ def shrink
60
+ @format.state.alignment.shrink
61
+ end
62
+
63
+ def shrink=(value)
64
+ @format.state.alignment.shrink = value
65
+ end
66
+
67
+ def merge_range
68
+ @format.state.alignment.merge_range
69
+ end
70
+
71
+ def merge_range=(value)
72
+ @format.state.alignment.merge_range = value
73
+ end
74
+
75
+ def reading_order
76
+ @format.state.alignment.reading_order
77
+ end
78
+
79
+ def reading_order=(value)
80
+ @format.state.alignment.reading_order = value
81
+ end
82
+
83
+ def just_distrib
84
+ @format.state.alignment.just_distrib
85
+ end
86
+
87
+ def just_distrib=(value)
88
+ @format.state.alignment.just_distrib = value
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,47 @@
1
+ # -*- coding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
4
+ module Writexlsx
5
+ class Format
6
+ class BorderState
7
+ attr_accessor :index, :count,
8
+ :bottom, :bottom_color,
9
+ :diag_border, :diag_color, :diag_type,
10
+ :left, :left_color,
11
+ :right, :right_color,
12
+ :top, :top_color
13
+
14
+ def initialize
15
+ @index = 0
16
+ @count = 0
17
+ @bottom = 0
18
+ @bottom_color = 0x0
19
+ @diag_border = 0
20
+ @diag_color = 0x0
21
+ @diag_type = 0
22
+ @left = 0
23
+ @left_color = 0x0
24
+ @right = 0
25
+ @right_color = 0x0
26
+ @top = 0
27
+ @top_color = 0x0
28
+ end
29
+
30
+ def initialize_copy(other)
31
+ @index = other.index
32
+ @count = other.count
33
+ @bottom = other.bottom
34
+ @bottom_color = other.bottom_color
35
+ @diag_border = other.diag_border
36
+ @diag_color = other.diag_color
37
+ @diag_type = other.diag_type
38
+ @left = other.left
39
+ @left_color = other.left_color
40
+ @right = other.right
41
+ @right_color = other.right_color
42
+ @top = other.top
43
+ @top_color = other.top_color
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,116 @@
1
+ # -*- coding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
4
+ module Writexlsx
5
+ class Format
6
+ class BorderStyle
7
+ def initialize(format)
8
+ @format = format
9
+ end
10
+
11
+ def index
12
+ @format.state.border.index
13
+ end
14
+
15
+ def index=(value)
16
+ @format.state.border.index = value
17
+ end
18
+
19
+ def count
20
+ @format.state.border.count
21
+ end
22
+
23
+ def count=(value)
24
+ @format.state.border.count = value
25
+ end
26
+
27
+ def left
28
+ @format.state.border.left
29
+ end
30
+
31
+ def left=(value)
32
+ @format.state.border.left = value
33
+ end
34
+
35
+ def left_color
36
+ @format.state.border.left_color
37
+ end
38
+
39
+ def left_color=(value)
40
+ @format.state.border.left_color = value
41
+ end
42
+
43
+ def right
44
+ @format.state.border.right
45
+ end
46
+
47
+ def right=(value)
48
+ @format.state.border.right = value
49
+ end
50
+
51
+ def right_color
52
+ @format.state.border.right_color
53
+ end
54
+
55
+ def right_color=(value)
56
+ @format.state.border.right_color = value
57
+ end
58
+
59
+ def top
60
+ @format.state.border.top
61
+ end
62
+
63
+ def top=(value)
64
+ @format.state.border.top = value
65
+ end
66
+
67
+ def top_color
68
+ @format.state.border.top_color
69
+ end
70
+
71
+ def top_color=(value)
72
+ @format.state.border.top_color = value
73
+ end
74
+
75
+ def bottom
76
+ @format.state.border.bottom
77
+ end
78
+
79
+ def bottom=(value)
80
+ @format.state.border.bottom = value
81
+ end
82
+
83
+ def bottom_color
84
+ @format.state.border.bottom_color
85
+ end
86
+
87
+ def bottom_color=(value)
88
+ @format.state.border.bottom_color = value
89
+ end
90
+
91
+ def diag_border
92
+ @format.state.border.diag_border
93
+ end
94
+
95
+ def diag_border=(value)
96
+ @format.state.border.diag_border = value
97
+ end
98
+
99
+ def diag_color
100
+ @format.state.border.diag_color
101
+ end
102
+
103
+ def diag_color=(value)
104
+ @format.state.border.diag_color = value
105
+ end
106
+
107
+ def diag_type
108
+ @format.state.border.diag_type
109
+ end
110
+
111
+ def diag_type=(value)
112
+ @format.state.border.diag_type = value
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,26 @@
1
+ # -*- coding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
4
+ module Writexlsx
5
+ class Format
6
+ class FillState
7
+ attr_accessor :fg_color, :bg_color, :pattern, :index, :count
8
+
9
+ def initialize
10
+ @fg_color = 0x00
11
+ @bg_color = 0x00
12
+ @pattern = 0
13
+ @index = 0
14
+ @count = 0
15
+ end
16
+
17
+ def initialize_copy(other)
18
+ @fg_color = other.fg_color
19
+ @bg_color = other.bg_color
20
+ @pattern = other.pattern
21
+ @index = other.index
22
+ @count = other.count
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,52 @@
1
+ # -*- coding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
4
+ module Writexlsx
5
+ class Format
6
+ class FillStyle
7
+ def initialize(format)
8
+ @format = format
9
+ end
10
+
11
+ def fg_color
12
+ @format.state.fill.fg_color
13
+ end
14
+
15
+ def bg_color
16
+ @format.state.fill.bg_color
17
+ end
18
+
19
+ def pattern
20
+ @format.state.fill.pattern
21
+ end
22
+
23
+ def index
24
+ @format.state.fill.index
25
+ end
26
+
27
+ def count
28
+ @format.state.fill.count
29
+ end
30
+
31
+ def fg_color=(value)
32
+ @format.state.fill.fg_color = value
33
+ end
34
+
35
+ def bg_color=(value)
36
+ @format.state.fill.bg_color = value
37
+ end
38
+
39
+ def pattern=(value)
40
+ @format.state.fill.pattern = value
41
+ end
42
+
43
+ def index=(value)
44
+ @format.state.fill.index = value
45
+ end
46
+
47
+ def count=(value)
48
+ @format.state.fill.count = value
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,74 @@
1
+ # -*- coding: utf-8 -*-
2
+ # frozen_string_literal: true
3
+
4
+ module Writexlsx
5
+ class Format
6
+ class FontState
7
+ attr_accessor(
8
+ :index,
9
+ :name,
10
+ :size,
11
+ :bold,
12
+ :italic,
13
+ :color,
14
+ :underline,
15
+ :strikeout,
16
+ :outline,
17
+ :shadow,
18
+ :script,
19
+ :family,
20
+ :charset,
21
+ :scheme,
22
+ :condense,
23
+ :extend,
24
+ :theme,
25
+ :hyperlink,
26
+ :color_indexed
27
+ )
28
+
29
+ def initialize
30
+ @index = 0
31
+ @name = 'Calibri'
32
+ @size = 11
33
+ @bold = 0
34
+ @italic = 0
35
+ @color = 0x0
36
+ @underline = 0
37
+ @strikeout = 0
38
+ @outline = 0
39
+ @shadow = 0
40
+ @script = 0
41
+ @family = 2
42
+ @charset = 0
43
+ @scheme = 'minor'
44
+ @condense = 0
45
+ @extend = 0
46
+ @theme = 0
47
+ @hyperlink = 0
48
+ @color_indexed = 0
49
+ end
50
+
51
+ def initialize_copy(other)
52
+ @index = other.index
53
+ @name = other.name
54
+ @size = other.size
55
+ @bold = other.bold
56
+ @italic = other.italic
57
+ @color = other.color
58
+ @underline = other.underline
59
+ @strikeout = other.strikeout
60
+ @outline = other.outline
61
+ @shadow = other.shadow
62
+ @script = other.script
63
+ @family = other.family
64
+ @charset = other.charset
65
+ @scheme = other.scheme
66
+ @condense = other.condense
67
+ @extend = other.extend
68
+ @theme = other.theme
69
+ @hyperlink = other.hyperlink
70
+ @color_indexed = other.color_indexed
71
+ end
72
+ end
73
+ end
74
+ end