xlsxrb 0.1.4 → 0.1.6

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 (166) hide show
  1. checksums.yaml +4 -4
  2. data/.devcontainer/Dockerfile +1 -1
  3. data/.gem_rbs_collection/ast/2.4/.rbs_meta.yaml +9 -0
  4. data/.gem_rbs_collection/ast/2.4/ast.rbs +73 -0
  5. data/.gem_rbs_collection/concurrent-ruby/1.1/.rbs_meta.yaml +9 -0
  6. data/.gem_rbs_collection/concurrent-ruby/1.1/array.rbs +4 -0
  7. data/.gem_rbs_collection/concurrent-ruby/1.1/atomic_reference.rbs +16 -0
  8. data/.gem_rbs_collection/concurrent-ruby/1.1/executor.rbs +96 -0
  9. data/.gem_rbs_collection/concurrent-ruby/1.1/hash.rbs +4 -0
  10. data/.gem_rbs_collection/concurrent-ruby/1.1/map.rbs +68 -0
  11. data/.gem_rbs_collection/concurrent-ruby/1.1/promises.rbs +249 -0
  12. data/.gem_rbs_collection/concurrent-ruby/1.1/set.rbs +4 -0
  13. data/.gem_rbs_collection/concurrent-ruby/1.1/timer_task.rbs +47 -0
  14. data/.gem_rbs_collection/concurrent-ruby/1.1/utility/processor_counter.rbs +5 -0
  15. data/.gem_rbs_collection/csv/3.3/.rbs_meta.yaml +9 -0
  16. data/.gem_rbs_collection/csv/3.3/csv.rbs +3871 -0
  17. data/.gem_rbs_collection/csv/3.3/manifest.yaml +3 -0
  18. data/.gem_rbs_collection/lint_roller/1.1/.rbs_meta.yaml +9 -0
  19. data/.gem_rbs_collection/lint_roller/1.1/lint_roller.rbs +48 -0
  20. data/.gem_rbs_collection/listen/3.9/.rbs_meta.yaml +9 -0
  21. data/.gem_rbs_collection/listen/3.9/listen.rbs +25 -0
  22. data/.gem_rbs_collection/listen/3.9/listener.rbs +24 -0
  23. data/.gem_rbs_collection/logger/1.7/.rbs_meta.yaml +9 -0
  24. data/.gem_rbs_collection/logger/1.7/formatter.rbs +45 -0
  25. data/.gem_rbs_collection/logger/1.7/log_device.rbs +100 -0
  26. data/.gem_rbs_collection/logger/1.7/logger.rbs +796 -0
  27. data/.gem_rbs_collection/logger/1.7/manifest.yaml +2 -0
  28. data/.gem_rbs_collection/logger/1.7/period.rbs +17 -0
  29. data/.gem_rbs_collection/logger/1.7/severity.rbs +34 -0
  30. data/.gem_rbs_collection/nokogiri/1.11/.rbs_meta.yaml +9 -0
  31. data/.gem_rbs_collection/nokogiri/1.11/nokogiri.rbs +2332 -0
  32. data/.gem_rbs_collection/nokogiri/1.11/patch.rbs +4 -0
  33. data/.gem_rbs_collection/parallel/1.20/.rbs_meta.yaml +9 -0
  34. data/.gem_rbs_collection/parallel/1.20/parallel.rbs +86 -0
  35. data/.gem_rbs_collection/parser/3.2/.rbs_meta.yaml +9 -0
  36. data/.gem_rbs_collection/parser/3.2/manifest.yaml +7 -0
  37. data/.gem_rbs_collection/parser/3.2/parser.rbs +194 -0
  38. data/.gem_rbs_collection/parser/3.2/polyfill.rbs +4 -0
  39. data/.gem_rbs_collection/rainbow/3.0/.rbs_meta.yaml +9 -0
  40. data/.gem_rbs_collection/rainbow/3.0/global.rbs +7 -0
  41. data/.gem_rbs_collection/rainbow/3.0/presenter.rbs +209 -0
  42. data/.gem_rbs_collection/rainbow/3.0/rainbow.rbs +5 -0
  43. data/.gem_rbs_collection/rake/13.0/.rbs_meta.yaml +9 -0
  44. data/.gem_rbs_collection/rake/13.0/manifest.yaml +2 -0
  45. data/.gem_rbs_collection/rake/13.0/rake.rbs +39 -0
  46. data/.gem_rbs_collection/regexp_parser/2.8/.rbs_meta.yaml +9 -0
  47. data/.gem_rbs_collection/regexp_parser/2.8/regexp_parser.rbs +17 -0
  48. data/.gem_rbs_collection/rubocop/1.57/.rbs_meta.yaml +9 -0
  49. data/.gem_rbs_collection/rubocop/1.57/rubocop.rbs +208 -0
  50. data/.gem_rbs_collection/rubocop-ast/1.46/.rbs_meta.yaml +9 -0
  51. data/.gem_rbs_collection/rubocop-ast/1.46/rubocop-ast.rbs +903 -0
  52. data/.gem_rbs_collection/rubyzip/3.2/.rbs_meta.yaml +9 -0
  53. data/.gem_rbs_collection/rubyzip/3.2/manifest.yaml +8 -0
  54. data/.gem_rbs_collection/rubyzip/3.2/zip/central_directory.rbs +42 -0
  55. data/.gem_rbs_collection/rubyzip/3.2/zip/compressor.rbs +5 -0
  56. data/.gem_rbs_collection/rubyzip/3.2/zip/constants.rbs +47 -0
  57. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/aes_encryption.rbs +30 -0
  58. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/decrypted_io.rbs +9 -0
  59. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/encryption.rbs +7 -0
  60. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/null_encryption.rbs +19 -0
  61. data/.gem_rbs_collection/rubyzip/3.2/zip/crypto/traditional_encryption.rbs +31 -0
  62. data/.gem_rbs_collection/rubyzip/3.2/zip/decompressor.rbs +18 -0
  63. data/.gem_rbs_collection/rubyzip/3.2/zip/deflater.rbs +12 -0
  64. data/.gem_rbs_collection/rubyzip/3.2/zip/dirtyable.rbs +11 -0
  65. data/.gem_rbs_collection/rubyzip/3.2/zip/dos_time.rbs +13 -0
  66. data/.gem_rbs_collection/rubyzip/3.2/zip/entry.rbs +95 -0
  67. data/.gem_rbs_collection/rubyzip/3.2/zip/entry_set.rbs +31 -0
  68. data/.gem_rbs_collection/rubyzip/3.2/zip/errors.rbs +58 -0
  69. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/aes.rbs +24 -0
  70. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/generic.rbs +17 -0
  71. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/ntfs.rbs +23 -0
  72. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/old_unix.rbs +22 -0
  73. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/universal_time.rbs +30 -0
  74. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/unix.rbs +20 -0
  75. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/unknown.rbs +15 -0
  76. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field/zip64.rbs +26 -0
  77. data/.gem_rbs_collection/rubyzip/3.2/zip/extra_field.rbs +21 -0
  78. data/.gem_rbs_collection/rubyzip/3.2/zip/file.rbs +131 -0
  79. data/.gem_rbs_collection/rubyzip/3.2/zip/file_split.rbs +14 -0
  80. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/dir.rbs +33 -0
  81. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/directory_iterator.rbs +21 -0
  82. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/file.rbs +63 -0
  83. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/file_stat.rbs +55 -0
  84. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem/zip_file_name_mapper.rbs +35 -0
  85. data/.gem_rbs_collection/rubyzip/3.2/zip/filesystem.rbs +7 -0
  86. data/.gem_rbs_collection/rubyzip/3.2/zip/inflater.rbs +10 -0
  87. data/.gem_rbs_collection/rubyzip/3.2/zip/input_stream.rbs +22 -0
  88. data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras/abstract_input_stream.rbs +29 -0
  89. data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras/abstract_output_stream.rbs +17 -0
  90. data/.gem_rbs_collection/rubyzip/3.2/zip/ioextras.rbs +13 -0
  91. data/.gem_rbs_collection/rubyzip/3.2/zip/null_compressor.rbs +10 -0
  92. data/.gem_rbs_collection/rubyzip/3.2/zip/null_decompressor.rbs +8 -0
  93. data/.gem_rbs_collection/rubyzip/3.2/zip/null_input_stream.rbs +6 -0
  94. data/.gem_rbs_collection/rubyzip/3.2/zip/output_stream.rbs +30 -0
  95. data/.gem_rbs_collection/rubyzip/3.2/zip/pass_thru_compressor.rbs +10 -0
  96. data/.gem_rbs_collection/rubyzip/3.2/zip/pass_thru_decompressor.rbs +10 -0
  97. data/.gem_rbs_collection/rubyzip/3.2/zip/streamable_directory.rbs +5 -0
  98. data/.gem_rbs_collection/rubyzip/3.2/zip/streamable_stream.rbs +15 -0
  99. data/.gem_rbs_collection/rubyzip/3.2/zip/version.rbs +3 -0
  100. data/.gem_rbs_collection/rubyzip/3.2/zip.rbs +40 -0
  101. data/CHANGELOG.md +42 -3
  102. data/README.md +130 -49
  103. data/Rakefile +23 -2
  104. data/Steepfile +17 -0
  105. data/benchmark.rb +324 -348
  106. data/docs/ARCHITECTURE.md +24 -0
  107. data/docs/DEVELOPMENT.md +58 -0
  108. data/docs/QUALITY_ASSURANCE.md +26 -0
  109. data/docs/visual/VisualGallery.md +893 -938
  110. data/docs/wasm/ruby.wasm +0 -0
  111. data/lib/xlsxrb/elements/cell.rb +113 -8
  112. data/lib/xlsxrb/elements/column.rb +2 -0
  113. data/lib/xlsxrb/elements/row.rb +52 -4
  114. data/lib/xlsxrb/elements/types.rb +6 -0
  115. data/lib/xlsxrb/elements/workbook.rb +29 -0
  116. data/lib/xlsxrb/elements/worksheet.rb +98 -1
  117. data/lib/xlsxrb/elements.rb +2 -0
  118. data/lib/xlsxrb/ooxml/reader.rb +8 -6
  119. data/lib/xlsxrb/ooxml/shared_strings_parser.rb +106 -40
  120. data/lib/xlsxrb/ooxml/styles_parser.rb +2 -0
  121. data/lib/xlsxrb/ooxml/utils.rb +2 -0
  122. data/lib/xlsxrb/ooxml/workbook_parser.rb +6 -1
  123. data/lib/xlsxrb/ooxml/workbook_writer.rb +15 -4
  124. data/lib/xlsxrb/ooxml/worksheet_parser.rb +156 -23
  125. data/lib/xlsxrb/ooxml/worksheet_writer.rb +207 -152
  126. data/lib/xlsxrb/ooxml/writer.rb +217 -5
  127. data/lib/xlsxrb/ooxml/xml_builder.rb +18 -10
  128. data/lib/xlsxrb/ooxml/xml_parser.rb +2 -0
  129. data/lib/xlsxrb/ooxml/zip_generator.rb +5 -8
  130. data/lib/xlsxrb/ooxml/zip_reader.rb +179 -57
  131. data/lib/xlsxrb/ooxml/zip_writer.rb +65 -25
  132. data/lib/xlsxrb/ooxml.rb +3 -1
  133. data/lib/xlsxrb/style_builder.rb +284 -36
  134. data/lib/xlsxrb/version.rb +3 -1
  135. data/lib/xlsxrb.rb +1761 -275
  136. data/rbs_collection.lock.yaml +252 -0
  137. data/rbs_collection.yaml +19 -0
  138. data/sig/generated/xlsxrb/elements/cell.rbs +30 -0
  139. data/sig/generated/xlsxrb/elements/column.rbs +30 -0
  140. data/sig/generated/xlsxrb/elements/row.rbs +32 -0
  141. data/sig/generated/xlsxrb/elements/types.rbs +74 -0
  142. data/sig/generated/xlsxrb/elements/workbook.rbs +25 -0
  143. data/sig/generated/xlsxrb/elements/worksheet.rbs +27 -0
  144. data/sig/generated/xlsxrb/elements.rbs +8 -0
  145. data/sig/generated/xlsxrb/ooxml/reader.rbs +1412 -0
  146. data/sig/generated/xlsxrb/ooxml/shared_strings_parser.rbs +21 -0
  147. data/sig/generated/xlsxrb/ooxml/styles_parser.rbs +44 -0
  148. data/sig/generated/xlsxrb/ooxml/utils.rbs +40 -0
  149. data/sig/generated/xlsxrb/ooxml/workbook_parser.rbs +46 -0
  150. data/sig/generated/xlsxrb/ooxml/workbook_writer.rbs +66 -0
  151. data/sig/generated/xlsxrb/ooxml/worksheet_parser.rbs +67 -0
  152. data/sig/generated/xlsxrb/ooxml/worksheet_writer.rbs +92 -0
  153. data/sig/generated/xlsxrb/ooxml/writer.rbs +880 -0
  154. data/sig/generated/xlsxrb/ooxml/xml_builder.rbs +45 -0
  155. data/sig/generated/xlsxrb/ooxml/xml_parser.rbs +30 -0
  156. data/sig/generated/xlsxrb/ooxml/zip_generator.rbs +38 -0
  157. data/sig/generated/xlsxrb/ooxml/zip_reader.rbs +45 -0
  158. data/sig/generated/xlsxrb/ooxml/zip_writer.rbs +45 -0
  159. data/sig/generated/xlsxrb/ooxml.rbs +23 -0
  160. data/sig/generated/xlsxrb/style_builder.rbs +250 -0
  161. data/sig/generated/xlsxrb/version.rbs +5 -0
  162. data/sig/generated/xlsxrb.rbs +1276 -0
  163. data/sig/rexml.rbs +4 -0
  164. metadata +145 -4
  165. data/measure_memory.rb +0 -42
  166. data/sig/xlsxrb.rbs +0 -23
@@ -0,0 +1,1276 @@
1
+ # Generated from lib/xlsxrb.rb with RBS::Inline
2
+
3
+ # Ruby XLSX read/write library.
4
+ module Xlsxrb
5
+ class Error < StandardError
6
+ DIV0: untyped
7
+
8
+ NA: untyped
9
+
10
+ NAME: untyped
11
+
12
+ NULL: untyped
13
+
14
+ NUM: untyped
15
+
16
+ REF: untyped
17
+
18
+ VALUE: untyped
19
+ end
20
+
21
+ class ParseError < Error
22
+ end
23
+
24
+ class ValidationError < Error
25
+ end
26
+
27
+ class ZipError < Error
28
+ end
29
+
30
+ TRACER: untyped
31
+
32
+ def self.in_span: (untyped name, ?attributes: untyped) ?{ (?) -> untyped } -> untyped
33
+
34
+ # Helper to easily create RichText objects.
35
+ # Supports both `Xlsxrb.rich_text({ text: "A" }, { text: "B" })`
36
+ # and `Xlsxrb.rich_text(text: "Hi", bold: true)`
37
+ #
38
+ # @param runs [Array<Hash>] Optional rich text runs.
39
+ # @param text [String, nil] Simple text.
40
+ # @param font_props [Hash] Font styling options (e.g., bold: true).
41
+ # @return [Elements::RichText] The resulting rich text.
42
+ # @api public
43
+ # : (*untyped runs, ?text: String?, **untyped font_props) -> untyped
44
+ def self.rich_text: (*untyped runs, ?text: String?, **untyped font_props) -> untyped
45
+
46
+ # Builder for block-style chart definitions.
47
+ # @api public
48
+ class ChartBuilder
49
+ # : () -> void
50
+ def initialize: () -> void
51
+
52
+ # : Hash[Symbol, untyped]
53
+ attr_reader options: untyped
54
+
55
+ # @api public
56
+ # : (untyped value) -> untyped
57
+ def type: (untyped value) -> untyped
58
+
59
+ # @api public
60
+ # : (untyped value) -> untyped
61
+ def title: (untyped value) -> untyped
62
+
63
+ # @api public
64
+ # : (?Hash[Symbol, untyped]? value) ?{ (SeriesBuilder) -> void } -> Array[Hash[Symbol, untyped]]
65
+ def series: (?Hash[Symbol, untyped]? value) ?{ (SeriesBuilder) -> void } -> Array[Hash[Symbol, untyped]]
66
+
67
+ # Configures the legend property for this chart.
68
+ # @param args [Array] Positional arguments.
69
+ # @param kwargs [Hash] Keyword arguments.
70
+ # @return [Object] the configured property
71
+ # @api public
72
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
73
+ def legend: (*Hash[Symbol, String | Integer | bool | nil] | String args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
74
+
75
+ # Configures the plot_area property for this chart.
76
+ # @param args [Array] Positional arguments.
77
+ # @param kwargs [Hash] Keyword arguments.
78
+ # @return [Object] the configured property
79
+ # @api public
80
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
81
+ def plot_area: (*Hash[Symbol, String | Integer | bool | nil] | String args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
82
+
83
+ # Configures the chart_space property for this chart.
84
+ # @param args [Array] Positional arguments.
85
+ # @param kwargs [Hash] Keyword arguments.
86
+ # @return [Object] the configured property
87
+ # @api public
88
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
89
+ def chart_space: (*Hash[Symbol, String | Integer | bool | nil] | String args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
90
+
91
+ # Configures the style property for this chart.
92
+ # @param args [Array] Positional arguments.
93
+ # @param kwargs [Hash] Keyword arguments.
94
+ # @return [Object] the configured property
95
+ # @api public
96
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String | Integer) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String | Integer)
97
+ def style: (*Hash[Symbol, String | Integer | bool | nil] | String | Integer args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String | Integer)
98
+
99
+ # Configures the data_labels property for this chart.
100
+ # @param args [Array] Positional arguments.
101
+ # @param kwargs [Hash] Keyword arguments.
102
+ # @return [Object] the configured property
103
+ # @api public
104
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
105
+ def data_labels: (*Hash[Symbol, String | Integer | bool | nil] | String args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
106
+
107
+ # Configures the plot_visible_only property for this chart.
108
+ # @param args [Array] Positional arguments.
109
+ # @param kwargs [Hash] Keyword arguments.
110
+ # @return [Object] the configured property
111
+ # @api public
112
+ # : (*(bool | String) args, **String | Integer | bool | nil kwargs) -> (bool | String)
113
+ def plot_visible_only: (*bool | String args, **String | Integer | bool | nil kwargs) -> (bool | String)
114
+
115
+ # Configures the display_blanks_as property for this chart.
116
+ # @param args [Array] Positional arguments.
117
+ # @param kwargs [Hash] Keyword arguments.
118
+ # @return [Object] the configured property
119
+ # @api public
120
+ # : (*(String) args, **String | Integer | bool | nil kwargs) -> String
121
+ def display_blanks_as: (*String args, **String | Integer | bool | nil kwargs) -> String
122
+
123
+ # Configures the view3d property for this chart.
124
+ # @param args [Array] Positional arguments.
125
+ # @param kwargs [Hash] Keyword arguments.
126
+ # @return [Object] the configured property
127
+ # @api public
128
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
129
+ def view3d: (*Hash[Symbol, String | Integer | bool | nil] | String args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
130
+
131
+ # Configures the category_axis property for this chart.
132
+ # @param args [Array] Positional arguments.
133
+ # @param kwargs [Hash] Keyword arguments.
134
+ # @return [Object] the configured property
135
+ # @api public
136
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
137
+ def category_axis: (*Hash[Symbol, String | Integer | bool | nil] | String args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
138
+
139
+ # Configures the value_axis property for this chart.
140
+ # @param args [Array] Positional arguments.
141
+ # @param kwargs [Hash] Keyword arguments.
142
+ # @return [Object] the configured property
143
+ # @api public
144
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
145
+ def value_axis: (*Hash[Symbol, String | Integer | bool | nil] | String args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
146
+
147
+ # Configures the show_legend_key property for this chart.
148
+ # @param args [Array] Positional arguments.
149
+ # @param kwargs [Hash] Keyword arguments.
150
+ # @return [Object] the configured property
151
+ # @api public
152
+ # : (*(bool | String) args, **String | Integer | bool | nil kwargs) -> (bool | String)
153
+ def show_legend_key: (*bool | String args, **String | Integer | bool | nil kwargs) -> (bool | String)
154
+
155
+ # Builder for a single series entry in block-style chart definitions.
156
+ # @api public
157
+ class SeriesBuilder
158
+ # : () -> void
159
+ def initialize: () -> void
160
+
161
+ # : Hash[Symbol, untyped]
162
+ attr_reader options: untyped
163
+
164
+ # Configures the categories property for this series.
165
+ # @param args [Array] Positional arguments.
166
+ # @param kwargs [Hash] Keyword arguments.
167
+ # @return [Object] the configured property
168
+ # @api public
169
+ # : (*untyped args, **untyped kwargs) -> untyped
170
+ def categories: (*untyped args, **untyped kwargs) -> untyped
171
+
172
+ # Configures the values property for this series.
173
+ # @param args [Array] Positional arguments.
174
+ # @param kwargs [Hash] Keyword arguments.
175
+ # @return [Object] the configured property
176
+ # @api public
177
+ # : (*untyped args, **untyped kwargs) -> untyped
178
+ def values: (*untyped args, **untyped kwargs) -> untyped
179
+
180
+ # Configures the name property for this series.
181
+ # @param args [Array] Positional arguments.
182
+ # @param kwargs [Hash] Keyword arguments.
183
+ # @return [Object] the configured property
184
+ # @api public
185
+ # : (*untyped args, **untyped kwargs) -> untyped
186
+ def name: (*untyped args, **untyped kwargs) -> untyped
187
+
188
+ # Configures the marker property for this series.
189
+ # @param args [Array] Positional arguments.
190
+ # @param kwargs [Hash] Keyword arguments.
191
+ # @return [Object] the configured property
192
+ # @api public
193
+ # : (*untyped args, **untyped kwargs) -> untyped
194
+ def marker: (*untyped args, **untyped kwargs) -> untyped
195
+
196
+ # Configures the fill property for this series.
197
+ # @param args [Array] Positional arguments.
198
+ # @param kwargs [Hash] Keyword arguments.
199
+ # @return [Object] the configured property
200
+ # @api public
201
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
202
+ def fill: (*Hash[Symbol, String | Integer | bool | nil] | String args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
203
+
204
+ # Configures the line property for this series.
205
+ # @param args [Array] Positional arguments.
206
+ # @param kwargs [Hash] Keyword arguments.
207
+ # @return [Object] the configured property
208
+ # @api public
209
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
210
+ def line: (*Hash[Symbol, String | Integer | bool | nil] | String args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
211
+
212
+ # Configures the trendline property for this series.
213
+ # @param args [Array] Positional arguments.
214
+ # @param kwargs [Hash] Keyword arguments.
215
+ # @return [Object] the configured property
216
+ # @api public
217
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
218
+ def trendline: (*Hash[Symbol, String | Integer | bool | nil] | String args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
219
+
220
+ # Configures the data_labels property for this series.
221
+ # @param args [Array] Positional arguments.
222
+ # @param kwargs [Hash] Keyword arguments.
223
+ # @return [Object] the configured property
224
+ # @api public
225
+ # : (*(Hash[Symbol, String | Integer | bool | nil] | String) args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
226
+ def data_labels: (*Hash[Symbol, String | Integer | bool | nil] | String args, **String | Integer | bool | nil kwargs) -> (Hash[Symbol, String | Integer | bool | nil] | String)
227
+
228
+ # Configures the smooth property for this series.
229
+ # @param args [Array] Positional arguments.
230
+ # @param kwargs [Hash] Keyword arguments.
231
+ # @return [Object] the configured property
232
+ # @api public
233
+ # : (*(bool | String) args, **String | Integer | bool | nil kwargs) -> (bool | String)
234
+ def smooth: (*bool | String args, **String | Integer | bool | nil kwargs) -> (bool | String)
235
+
236
+ # Configures the shape property for this series.
237
+ # @param args [Array] Positional arguments.
238
+ # @param kwargs [Hash] Keyword arguments.
239
+ # @return [Object] the configured property
240
+ # @api public
241
+ # : (*(String) args, **String | Integer | bool | nil kwargs) -> String
242
+ def shape: (*String args, **String | Integer | bool | nil kwargs) -> String
243
+
244
+ # Configures the type property for this series.
245
+ # @param args [Array] Positional arguments.
246
+ # @param kwargs [Hash] Keyword arguments.
247
+ # @return [Object] the configured property
248
+ # @api public
249
+ # : (*(String) args, **String | Integer | bool | nil kwargs) -> String
250
+ def type: (*String args, **String | Integer | bool | nil kwargs) -> String
251
+ end
252
+ end
253
+
254
+ # Creates a Formula object for use in row values.
255
+ #
256
+ # @param expression [String] The formula text (e.g. "SUM(A1:A10)").
257
+ # @param cached_value [Object, nil] Optional cached result. If nil, Excel will calculate on open.
258
+ # @return [Elements::Formula]
259
+ # @api public
260
+ # : (String expression, ?cached_value: String | Numeric | bool | nil) -> untyped
261
+ def self.formula: (String expression, ?cached_value: String | Numeric | bool | nil) -> untyped
262
+
263
+ # Reads an XLSX file into an Elements::Workbook.
264
+ #
265
+ # @param source [String, IO] File path or IO object.
266
+ # @return [Elements::Workbook] The parsed workbook.
267
+ # @api public
268
+ # : (untyped source) -> untyped
269
+ def self.read: (untyped source) -> untyped
270
+
271
+ # Writes an Elements::Workbook to an XLSX file.
272
+ #
273
+ # @param target [String, IO] File path or IO object.
274
+ # @param workbook [Elements::Workbook] The workbook to write.
275
+ # @return [void]
276
+ # @api public
277
+ # : (untyped target, untyped workbook) -> void
278
+ def self.write: (untyped target, untyped workbook) -> void
279
+
280
+ # Modifies an existing XLSX file.
281
+ # Reads the workbook, passes it to the block, and writes the result.
282
+ # The block receives an Elements::Workbook and must return a modified one (e.g. via `update_sheet`).
283
+ # If no target is given, the source is overwritten.
284
+ #
285
+ # @example
286
+ # Xlsxrb.modify("template.xlsx", "output.xlsx") do |wb|
287
+ # wb.update_sheet(0) do |sheet|
288
+ # sheet.update_cell("B1", value: "Updated")
289
+ # .update_cell("B2", value: 100)
290
+ # end
291
+ # end
292
+ #
293
+ # @param source [String, IO] The source file path or IO object.
294
+ # @param target [String, IO, nil] The target file path or IO object. If nil, overwrites source.
295
+ # @yield [workbook] Yields the parsed workbook.
296
+ # @yieldparam workbook [Elements::Workbook] The parsed workbook.
297
+ # @yieldreturn [Elements::Workbook] The modified workbook.
298
+ # @return [void]
299
+ # @api public
300
+ # : (untyped source, ?untyped target) ?{ (untyped) -> untyped } -> void
301
+ def self.modify: (untyped source, ?untyped target) ?{ (untyped) -> untyped } -> void
302
+
303
+ # Represents a sheet being streamed sequentially.
304
+ class StreamSheet
305
+ attr_reader name: untyped
306
+
307
+ def initialize: (untyped name, untyped sheet_xml, untyped shared_strings) -> untyped
308
+
309
+ # : () { (Elements::Row) -> void } -> void
310
+ # : | () -> Enumerator[Elements::Row, void]
311
+ def each_row: () { (Elements::Row) -> void } -> void
312
+
313
+ # : () { (Elements::Row) -> void } -> void
314
+ # : | () -> Enumerator[Elements::Row, void]
315
+ def each: () { (Elements::Row) -> void } -> void
316
+ end
317
+
318
+ # Streaming read: yields StreamSheet objects one at a time for each sheet.
319
+ #
320
+ # @param source [String, IO] File path or IO object.
321
+ # @yield [sheet] Yields each sheet.
322
+ # @yieldparam sheet [StreamSheet] The streaming sheet object.
323
+ # @return [Enumerator] If no block is given.
324
+ # @return [void]
325
+ # @api public
326
+ # : (untyped source) ?{ (StreamSheet) -> void } -> untyped
327
+ def self.foreach: (untyped source) ?{ (StreamSheet) -> void } -> untyped
328
+
329
+ # Streaming write: yields a StreamWriter context for building XLSX on-the-fly.
330
+ #
331
+ # @param target [String, IO] File path or IO object.
332
+ # @yield [stream_writer]
333
+ # @yieldparam stream_writer [Xlsxrb::StreamWriter]
334
+ # @return [void]
335
+ # @api public
336
+ # : (untyped target, ?strict_excel_mode: bool) ?{ (Xlsxrb::StreamWriter) -> void } -> void
337
+ def self.generate: (untyped target, ?strict_excel_mode: bool) ?{ (Xlsxrb::StreamWriter) -> void } -> void
338
+
339
+ # Builds an Elements::Workbook in memory using a DSL.
340
+ #
341
+ # @yield [builder]
342
+ # @yieldparam builder [Xlsxrb::WorkbookBuilder]
343
+ # @return [Elements::Workbook]
344
+ # @api public
345
+ # : (?strict_excel_mode: bool) ?{ (WorkbookBuilder) -> void } -> untyped
346
+ def self.build: (?strict_excel_mode: bool) ?{ (WorkbookBuilder) -> void } -> untyped
347
+
348
+ # DSL context for Xlsxrb.build.
349
+ # @api public
350
+ class WorkbookBuilder
351
+ # : (?strict_excel_mode: bool) -> void
352
+ def initialize: (?strict_excel_mode: bool) -> void
353
+
354
+ # Set a workbook property.
355
+ #
356
+ # @note **SECURITY WARNING:** If you set `:update_links` to anything other than `"never"`,
357
+ # you may expose end-users to malicious external reference vulnerabilities (e.g., CSV/DDE Injection)
358
+ # when they open the generated Excel file. Ensure you fully trust the exported data.
359
+ #
360
+ # @param name [Symbol] The property name (e.g. :update_links).
361
+ # @param value [String, Integer, Boolean] The property value.
362
+ # @return [void]
363
+ # @api public
364
+ # : (Symbol name, String | Integer | bool value) -> (String | Integer | bool)
365
+ def workbook_property: (Symbol name, String | Integer | bool value) -> (String | Integer | bool)
366
+
367
+ # Add a new sheet.
368
+ #
369
+ # @param name [String, nil] The name of the sheet.
370
+ # @param opts [Hash] Sheet properties.
371
+ # @yield [sheet_builder]
372
+ # @yieldparam sheet_builder [Xlsxrb::WorksheetBuilder]
373
+ # @return [void]
374
+ # @api public
375
+ # : (?String? name, **untyped opts) ?{ (WorksheetBuilder) -> void } -> untyped
376
+ def sheet: (?String? name, **untyped opts) ?{ (WorksheetBuilder) -> void } -> untyped
377
+
378
+ alias [] sheet
379
+
380
+ # Add a defined name.
381
+ #
382
+ # @param name [String] The defined name.
383
+ # @param value [String] The formula or value.
384
+ # @param sheet [String, nil] Local sheet name.
385
+ # @param hidden [Boolean] Whether the defined name is hidden.
386
+ # @return [void]
387
+ # @api public
388
+ # : (String name, String value, ?sheet: String?, ?hidden: bool) -> void
389
+ def defined_name: (String name, String value, ?sheet: String?, ?hidden: bool) -> void
390
+
391
+ # Set the print area for a sheet.
392
+ #
393
+ # @param range [String] The range string (e.g. "A1:B10").
394
+ # @param sheet [String, nil] The sheet name.
395
+ # @return [void]
396
+ # @api public
397
+ # : (String range, ?sheet: String?) -> void
398
+ def print_area: (String range, ?sheet: String?) -> void
399
+
400
+ # Set print titles for a sheet.
401
+ #
402
+ # @param rows [String, nil] Rows to repeat (e.g. "1:2").
403
+ # @param cols [String, nil] Columns to repeat (e.g. "A:B").
404
+ # @param sheet [String, nil] The sheet name.
405
+ # @return [void]
406
+ # @api public
407
+ # : (?rows: String?, ?cols: String?, ?sheet: String?) -> void
408
+ def print_titles: (?rows: String?, ?cols: String?, ?sheet: String?) -> void
409
+
410
+ # Set workbook protection.
411
+ #
412
+ # @param opts [Hash] Protection options.
413
+ # @return [void]
414
+ # @api public
415
+ # : (**String | Integer | bool | nil opts) -> void
416
+ def protect_workbook: (**String | Integer | bool | nil opts) -> void
417
+
418
+ # Set a core document property.
419
+ #
420
+ # @param name [Symbol] The property name.
421
+ # @param value [String, Integer, Time] The property value.
422
+ # @return [void]
423
+ # @api public
424
+ # : (Symbol name, String | Integer | Time value) -> void
425
+ def core_property: (Symbol name, String | Integer | Time value) -> void
426
+
427
+ # Set an app document property.
428
+ #
429
+ # @param name [Symbol] The property name.
430
+ # @param value [String, Integer, Time] The property value.
431
+ # @return [void]
432
+ # @api public
433
+ # : (Symbol name, String | Integer | Time value) -> void
434
+ def app_property: (Symbol name, String | Integer | Time value) -> void
435
+
436
+ # Set multiple core and/or app properties.
437
+ #
438
+ # @param core [Hash, nil] Core properties.
439
+ # @param app [Hash, nil] App properties.
440
+ # @return [void]
441
+ # @api public
442
+ # : (?core: Hash[Symbol, String | Integer | Time]?, ?app: Hash[Symbol, String | Integer | Time]?) -> void
443
+ def properties: (?core: Hash[Symbol, String | Integer | Time]?, ?app: Hash[Symbol, String | Integer | Time]?) -> void
444
+
445
+ # Add a custom document property.
446
+ #
447
+ # @param name [String] The property name.
448
+ # @param value [String, Integer, Float, Boolean, Time] The property value.
449
+ # @param type [Symbol] The type of property (:string, :number, :bool, :date).
450
+ # @return [void]
451
+ # @api public
452
+ # : (String name, String | Integer | Float | bool | Time value, ?type: ::Symbol) -> void
453
+ def custom_property: (String name, String | Integer | Float | bool | Time value, ?type: ::Symbol) -> void
454
+
455
+ # @api public
456
+ # : () -> untyped
457
+ def build: () -> untyped
458
+
459
+ private
460
+
461
+ # : (untyped range) -> untyped
462
+ def absolute_range: (untyped range) -> untyped
463
+
464
+ # : (untyped names, untyped sheets) -> untyped
465
+ def resolve_defined_names: (untyped names, untyped sheets) -> untyped
466
+
467
+ # : (untyped sheets) -> (::Array[untyped | ::Hash[untyped, untyped]] | ::Array[untyped])
468
+ def process_styles: (untyped sheets) -> (::Array[untyped | ::Hash[untyped, untyped]] | ::Array[untyped])
469
+
470
+ # : (untyped writer) -> { fonts: untyped, fills: untyped, borders: untyped, xf_entries: untyped, num_fmts: untyped }
471
+ def extract_styles_from_writer: (untyped writer) -> { fonts: untyped, fills: untyped, borders: untyped, xf_entries: untyped, num_fmts: untyped }
472
+ end
473
+
474
+ # DSL context for a single worksheet in Xlsxrb.build.
475
+ # @api public
476
+ class WorksheetBuilder
477
+ # : (untyped name, ?strict_excel_mode: bool) -> void
478
+ def initialize: (untyped name, ?strict_excel_mode: bool) -> void
479
+
480
+ # Define a named style that can be applied to cells.
481
+ #
482
+ # @param name [String] The name of the style.
483
+ # @param opts [Hash] Style options (e.g. bold: true).
484
+ # @yield [style_builder]
485
+ # @yieldparam style_builder [Xlsxrb::StyleBuilder]
486
+ # @return [StyleBuilder]
487
+ # @api public
488
+ # : (String name, **untyped opts) ?{ (StyleBuilder) -> void } -> StyleBuilder
489
+ def style: (String name, **untyped opts) ?{ (StyleBuilder) -> void } -> StyleBuilder
490
+
491
+ # Add a row to the sheet.
492
+ #
493
+ # @param values [Array, Hash] The cell values.
494
+ # @param styles [String, Array<String>, nil] Styles to apply to cells.
495
+ # @param height [Float, nil] The row height.
496
+ # @param hidden [Boolean] Whether the row is hidden.
497
+ # @param custom_height [Boolean] Whether it's a custom height.
498
+ # @param outline_level [Integer, nil] The outline level.
499
+ # @note Excel's column limit is 16,384, row limit is 1,048,576, string max length is 32,767.
500
+ # @return [void]
501
+ # @api public
502
+ # : (Array[untyped] | Hash[untyped, untyped] values, ?styles: untyped, ?height: Float | Integer | nil, ?hidden: bool, ?custom_height: bool, ?outline_level: Integer | nil) -> void
503
+ def row: (Array[untyped] | Hash[untyped, untyped] values, ?styles: untyped, ?height: Float | Integer | nil, ?hidden: bool, ?custom_height: bool, ?outline_level: Integer | nil) -> void
504
+
505
+ # Add a column or multiple columns to the sheet.
506
+ #
507
+ # @param index [Integer, String, Range, Array] The column index (0-based), letter, or a collection of them.
508
+ # @param width [Float, nil] The column width.
509
+ # @param hidden [Boolean] Whether the column is hidden.
510
+ # @param custom_width [Boolean] Whether it's a custom width.
511
+ # @param outline_level [Integer, nil] The outline level.
512
+ # @note Excel's column width max is 255.
513
+ # @return [void]
514
+ # @api public
515
+ # : (Integer | String | Range[Integer | String] | Array[Integer | String] index, ?width: Float | Integer | nil, ?hidden: bool, ?custom_width: bool, ?outline_level: Integer | nil) -> void
516
+ def column: (Integer | String | Range[Integer | String] | Array[Integer | String] index, ?width: Float | Integer | nil, ?hidden: bool, ?custom_width: bool, ?outline_level: Integer | nil) -> void
517
+
518
+ # Add a chart to the sheet.
519
+ #
520
+ # @param options [Hash] Chart options.
521
+ # @yield [builder]
522
+ # @yieldparam builder [Xlsxrb::ChartBuilder]
523
+ # @return [void]
524
+ # @api public
525
+ # : (**untyped options) ?{ (ChartBuilder) -> void } -> void
526
+ def chart: (**untyped options) ?{ (ChartBuilder) -> void } -> void
527
+
528
+ # Add a hyperlink on a cell.
529
+ #
530
+ # @param cell [String] The cell reference (e.g. "A1").
531
+ # @param url [String, nil] The URL.
532
+ # @param display [String, nil] The display text.
533
+ # @param tooltip [String, nil] The tooltip.
534
+ # @param location [String, nil] The internal location reference.
535
+ # @return [void]
536
+ # @api public
537
+ # : (String | Integer cell, ?String? url, ?display: String?, ?tooltip: String?, ?location: String?) -> void
538
+ def hyperlink: (String | Integer cell, ?String? url, ?display: String?, ?tooltip: String?, ?location: String?) -> void
539
+
540
+ # Set an auto filter range (e.g. "A1:D10").
541
+ #
542
+ # @param range [String] The filter range.
543
+ # @return [void]
544
+ # @api public
545
+ # : (untyped range) -> untyped
546
+ def auto_filter: (untyped range) -> untyped
547
+
548
+ # Add a filter column to the auto filter.
549
+ #
550
+ # @param col_id [Integer] 0-based column index within the filter range.
551
+ # @param filter [Hash] The filter options.
552
+ # @return [void]
553
+ # @api public
554
+ # : (untyped col_id, untyped filter) -> untyped
555
+ def filter_column: (untyped col_id, untyped filter) -> untyped
556
+
557
+ # Set sort state.
558
+ #
559
+ # @param ref [String] The sort range.
560
+ # @param sort_conditions [Array<Hash>] Sort conditions.
561
+ # @param opts [Hash] Additional options.
562
+ # @return [void]
563
+ # @api public
564
+ # : (untyped ref, untyped sort_conditions, **untyped opts) -> untyped
565
+ def sort_state: (untyped ref, untyped sort_conditions, **untyped opts) -> untyped
566
+
567
+ # Add a data validation rule.
568
+ #
569
+ # @param sqref [String] The cell range (e.g. "A1:A100").
570
+ # @param opts [Hash] Data validation options.
571
+ # @return [void]
572
+ # @api public
573
+ # : (untyped sqref, **untyped opts) -> untyped
574
+ def validate_data: (untyped sqref, **untyped opts) -> untyped
575
+
576
+ # Add a conditional formatting rule.
577
+ #
578
+ # @param sqref [String] The cell range.
579
+ # @param opts [Hash] Conditional format options.
580
+ # @return [void]
581
+ # @api public
582
+ # : (untyped sqref, **untyped opts) -> untyped
583
+ def conditional_format: (untyped sqref, **untyped opts) -> untyped
584
+
585
+ # Add a table to the sheet.
586
+ #
587
+ # @param ref [String] The table range.
588
+ # @param columns [Array<String>] The column names.
589
+ # @param name [String, nil] The table name.
590
+ # @param display_name [String, nil] The display name.
591
+ # @param style [String, nil] The table style.
592
+ # @param opts [Hash] Additional options.
593
+ # @return [void]
594
+ # @api public
595
+ # : (untyped ref, columns: untyped, ?name: untyped?, ?display_name: untyped?, ?style: untyped?, **untyped opts) -> untyped
596
+ def table: (untyped ref, columns: untyped, ?name: untyped?, ?display_name: untyped?, ?style: untyped?, **untyped opts) -> untyped
597
+
598
+ # Add a pivot table to the sheet.
599
+ #
600
+ # @param source_ref [String] data source range (e.g. "Sheet1!A1:C10").
601
+ # @param row_fields [Array<Integer>] array of 0-based field indices for row axis.
602
+ # @param data_fields [Array<Hash>] array of { fld:, name:, subtotal: } hashes.
603
+ # @param col_fields [Array<Integer>] array of 0-based field indices for column axis.
604
+ # @param dest_ref [String] top-left cell for the pivot table (default "E1").
605
+ # @param name [String, nil] Pivot table name.
606
+ # @param field_names [Array<String>, nil] Override field names.
607
+ # @param items [Array, nil] Items configuration.
608
+ # @return [void]
609
+ # @api public
610
+ # : (untyped source_ref, **untyped opts) -> void
611
+ def pivot_table: (untyped source_ref, **untyped opts) -> void
612
+
613
+ # Add a comment on a cell.
614
+ #
615
+ # @param cell [String] The cell reference.
616
+ # @param text [String] The comment text.
617
+ # @param author [String] The author name.
618
+ # @return [void]
619
+ # @api public
620
+ # : (String | Integer cell, String text, ?author: ::String) -> void
621
+ def comment: (String | Integer cell, String text, ?author: ::String) -> void
622
+
623
+ # Add a sparkline group to the sheet.
624
+ #
625
+ # @param sparklines [Array<Hash>] Array of { data_ref:, location_ref: } hashes.
626
+ # @param type [String, nil] "line" (default), "column", or "stacked".
627
+ # @param opts [Hash] Additional options.
628
+ # @return [void]
629
+ # @api public
630
+ # : (**untyped opts) -> void
631
+ def sparkline_group: (**untyped opts) -> void
632
+
633
+ # Merge a range of cells (e.g. "A1:B2"), or by coordinate indices.
634
+ #
635
+ # @param range [String, nil] The string range.
636
+ # @param row [Integer, nil] Single row index.
637
+ # @param col_start [Integer, nil] Starting column index.
638
+ # @param col_end [Integer, nil] Ending column index.
639
+ # @param row_start [Integer, nil] Starting row index.
640
+ # @param row_end [Integer, nil] Ending row index.
641
+ # @return [void]
642
+ # @api public
643
+ # : (?(String | Hash[Symbol, Integer | String])? range, ?row: Integer?, ?col_start: (Integer | String)?, ?col_end: (Integer | String)?, ?row_start: Integer?, ?row_end: Integer?) -> void
644
+ def merge: (?(String | Hash[Symbol, Integer | String])? range, ?row: Integer?, ?col_start: (Integer | String)?, ?col_end: (Integer | String)?, ?row_start: Integer?, ?row_end: Integer?) -> void
645
+
646
+ # Freeze panes at the given row and column.
647
+ #
648
+ # @param row [Integer] The row index to freeze at (0-based).
649
+ # @param col [Integer, String] The column index to freeze at (0-based or letter).
650
+ # @return [void]
651
+ # @api public
652
+ # : (?row: Integer, ?col: (Integer | String)) -> void
653
+ def freeze_pane: (?row: Integer, ?col: Integer | String) -> void
654
+
655
+ # Split panes (non-frozen).
656
+ #
657
+ # @param x_split [Integer] X coordinate.
658
+ # @param y_split [Integer] Y coordinate.
659
+ # @param top_left_cell [String, nil] Top left cell reference.
660
+ # @return [void]
661
+ # @api public
662
+ # : (?x_split: ::Integer, ?y_split: ::Integer, ?top_left_cell: String?) -> void
663
+ def split_pane: (?x_split: ::Integer, ?y_split: ::Integer, ?top_left_cell: String?) -> void
664
+
665
+ # Set active cell selection.
666
+ #
667
+ # @param active_cell [String] The active cell reference.
668
+ # @param sqref [String, nil] The selected range.
669
+ # @param pane [String, nil] The pane to select in.
670
+ # @return [void]
671
+ # @api public
672
+ # : (String active_cell, ?sqref: String?, ?pane: (String | Symbol)?) -> void
673
+ def select_cell: (String active_cell, ?sqref: String?, ?pane: (String | Symbol)?) -> void
674
+
675
+ # Set page margins (in inches).
676
+ #
677
+ # @param left [Float, nil] Left margin.
678
+ # @param right [Float, nil] Right margin.
679
+ # @param top [Float, nil] Top margin.
680
+ # @param bottom [Float, nil] Bottom margin.
681
+ # @param header [Float, nil] Header margin.
682
+ # @param footer [Float, nil] Footer margin.
683
+ # @return [void]
684
+ # @api public
685
+ # : (?left: Float?, ?right: Float?, ?top: Float?, ?bottom: Float?, ?header: Float?, ?footer: Float?) -> void
686
+ def page_margins: (?left: Float?, ?right: Float?, ?top: Float?, ?bottom: Float?, ?header: Float?, ?footer: Float?) -> void
687
+
688
+ # Set page setup properties.
689
+ #
690
+ # @param opts [Hash] Page setup options.
691
+ # @return [void]
692
+ # @api public
693
+ # : (**untyped opts) -> void
694
+ def page_setup: (**untyped opts) -> void
695
+
696
+ # Set header/footer text.
697
+ #
698
+ # @param opts [Hash] Header and footer options.
699
+ # @return [void]
700
+ # @api public
701
+ # : (**untyped opts) -> void
702
+ def header_footer: (**untyped opts) -> void
703
+
704
+ # Set a print option.
705
+ #
706
+ # @param name [Symbol] Option name.
707
+ # @param value [Object] Option value.
708
+ # @return [void]
709
+ # @api public
710
+ # : (Symbol name, untyped value) -> void
711
+ def print_options: (Symbol name, untyped value) -> void
712
+
713
+ # Set sheet protection options.
714
+ #
715
+ # @param opts [Hash] Sheet protection options.
716
+ # @return [void]
717
+ # @api public
718
+ # : (**untyped opts) -> void
719
+ def protect_sheet: (**untyped opts) -> void
720
+
721
+ # Insert an image from raw file data.
722
+ # @api public
723
+ # : (String file_data, ?ext: ::String, ?from_col: ::Integer, ?from_row: ::Integer, ?to_col: ::Integer, ?to_row: ::Integer, **untyped opts) -> void
724
+ def image: (String file_data, ?ext: ::String, ?from_col: ::Integer, ?from_row: ::Integer, ?to_col: ::Integer, ?to_row: ::Integer, **untyped opts) -> void
725
+
726
+ # Add a shape to the sheet.
727
+ # @api public
728
+ # : (**untyped opts) -> void
729
+ def shape: (**untyped opts) -> void
730
+
731
+ # Set a sheet-level property (e.g. :tab_color).
732
+ # @api public
733
+ # : (Symbol name, untyped value) -> void
734
+ def sheet_properties: (Symbol name, untyped value) -> void
735
+
736
+ # Set a sheet view property (e.g. :show_grid_lines, :zoom_scale).
737
+ # @api public
738
+ # : (Symbol name, untyped value) -> void
739
+ def sheet_view: (Symbol name, untyped value) -> void
740
+
741
+ # Add a page break before a row.
742
+ # @api public
743
+ # : (Integer row_num) -> void
744
+ def page_break_row: (Integer row_num) -> void
745
+
746
+ # Add a page break before a column.
747
+ # @api public
748
+ # : (Integer | String col_index) -> void
749
+ def page_break_col: (Integer | String col_index) -> void
750
+
751
+ # @api public
752
+ # : () -> untyped
753
+ def build: () -> untyped
754
+
755
+ # Internal: returns styles for later processing by WorkbookBuilder
756
+ # : untyped
757
+ attr_reader styles: untyped
758
+ end
759
+
760
+ # DSL context for Xlsxrb.generate streaming writes.
761
+ # @api public
762
+ class StreamWriter
763
+ attr_reader current_sheet: untyped
764
+
765
+ # : (untyped target, ?strict_excel_mode: bool) -> void
766
+ def initialize: (untyped target, ?strict_excel_mode: bool) -> void
767
+
768
+ # Set a workbook property.
769
+ #
770
+ # @note **SECURITY WARNING:** If you set `:update_links` to anything other than `"never"`,
771
+ # you may expose end-users to malicious external reference vulnerabilities (e.g., CSV/DDE Injection)
772
+ # when they open the generated Excel file. Ensure you fully trust the exported data.
773
+ #
774
+ # @param name [Symbol] The property name (e.g. :update_links).
775
+ # @param value [String, Integer, Boolean] The property value.
776
+ # @return [void]
777
+ # : (Symbol name, String | Integer | bool value) -> void
778
+ def workbook_property: (Symbol name, String | Integer | bool value) -> void
779
+
780
+ # Define a named style that can be applied to cells.
781
+ #
782
+ # @param name [String] The name of the style.
783
+ # @param opts [Hash] Style options (e.g. bold: true).
784
+ # @yield [style_builder]
785
+ # @yieldparam style_builder [Xlsxrb::StyleBuilder]
786
+ # @return [StyleBuilder]
787
+ # : (String name, **untyped opts) ?{ (StyleBuilder) -> void } -> StyleBuilder
788
+ def style: (String name, **untyped opts) ?{ (StyleBuilder) -> void } -> StyleBuilder
789
+
790
+ # Proxy object yielded by the `sheet` method to prevent writing to inactive sheets.
791
+ # @api public
792
+ class WorksheetProxy
793
+ def initialize: (untyped writer, untyped sheet_name) -> untyped
794
+
795
+ # Delegates to StreamWriter#style.
796
+ # @see StreamWriter#style
797
+ # @api public
798
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
799
+ # : (*untyped args, **untyped kwargs) ?{ (Xlsxrb::StyleBuilder) -> void } -> untyped
800
+ def style: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
801
+ | (*untyped args, **untyped kwargs) ?{ (Xlsxrb::StyleBuilder) -> void } -> untyped
802
+
803
+ # Delegates to StreamWriter#merge.
804
+ # @see StreamWriter#merge
805
+ # @api public
806
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
807
+ def merge: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
808
+
809
+ # Delegates to StreamWriter#shape.
810
+ # @see StreamWriter#shape
811
+ # @api public
812
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
813
+ def shape: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
814
+
815
+ # Delegates to StreamWriter#internal_sheet_setup.
816
+ # @see StreamWriter#internal_sheet_setup
817
+ # @api public
818
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
819
+ def internal_sheet_setup: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
820
+
821
+ # Delegates to StreamWriter#row.
822
+ # @see StreamWriter#row
823
+ # @api public
824
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
825
+ def row: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
826
+
827
+ # Delegates to StreamWriter#column.
828
+ # @see StreamWriter#column
829
+ # @api public
830
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
831
+ def column: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
832
+
833
+ # Delegates to StreamWriter#chart.
834
+ # @see StreamWriter#chart
835
+ # @api public
836
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
837
+ def chart: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
838
+
839
+ # Delegates to StreamWriter#hyperlink.
840
+ # @see StreamWriter#hyperlink
841
+ # @api public
842
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
843
+ def hyperlink: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
844
+
845
+ # Delegates to StreamWriter#auto_filter.
846
+ # @see StreamWriter#auto_filter
847
+ # @api public
848
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
849
+ def auto_filter: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
850
+
851
+ # Delegates to StreamWriter#filter_column.
852
+ # @see StreamWriter#filter_column
853
+ # @api public
854
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
855
+ def filter_column: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
856
+
857
+ # Delegates to StreamWriter#sort_state.
858
+ # @see StreamWriter#sort_state
859
+ # @api public
860
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
861
+ def sort_state: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
862
+
863
+ # Delegates to StreamWriter#validate_data.
864
+ # @see StreamWriter#validate_data
865
+ # @api public
866
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
867
+ def validate_data: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
868
+
869
+ # Delegates to StreamWriter#conditional_format.
870
+ # @see StreamWriter#conditional_format
871
+ # @api public
872
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
873
+ def conditional_format: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
874
+
875
+ # Delegates to StreamWriter#table.
876
+ # @see StreamWriter#table
877
+ # @api public
878
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
879
+ def table: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
880
+
881
+ # Delegates to StreamWriter#cleanup!.
882
+ # @see StreamWriter#cleanup!
883
+ # @api public
884
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
885
+ def cleanup!: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
886
+
887
+ # Delegates to StreamWriter#comment.
888
+ # @see StreamWriter#comment
889
+ # @api public
890
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
891
+ def comment: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
892
+
893
+ # Delegates to StreamWriter#pivot_table.
894
+ # @see StreamWriter#pivot_table
895
+ # @api public
896
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
897
+ def pivot_table: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
898
+
899
+ # Delegates to StreamWriter#sparkline_group.
900
+ # @see StreamWriter#sparkline_group
901
+ # @api public
902
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
903
+ def sparkline_group: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
904
+
905
+ # Delegates to StreamWriter#workbook_property.
906
+ # @see StreamWriter#workbook_property
907
+ # @api public
908
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
909
+ def workbook_property: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
910
+
911
+ # Delegates to StreamWriter#sheet_properties.
912
+ # @see StreamWriter#sheet_properties
913
+ # @api public
914
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
915
+ def sheet_properties: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
916
+
917
+ # Delegates to StreamWriter#defined_name.
918
+ # @see StreamWriter#defined_name
919
+ # @api public
920
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
921
+ def defined_name: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
922
+
923
+ # Delegates to StreamWriter#freeze_pane.
924
+ # @see StreamWriter#freeze_pane
925
+ # @api public
926
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
927
+ def freeze_pane: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
928
+
929
+ # Delegates to StreamWriter#print_area.
930
+ # @see StreamWriter#print_area
931
+ # @api public
932
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
933
+ def print_area: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
934
+
935
+ # Delegates to StreamWriter#print_titles.
936
+ # @see StreamWriter#print_titles
937
+ # @api public
938
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
939
+ def print_titles: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
940
+
941
+ # Delegates to StreamWriter#split_pane.
942
+ # @see StreamWriter#split_pane
943
+ # @api public
944
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
945
+ def split_pane: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
946
+
947
+ # Delegates to StreamWriter#protect_workbook.
948
+ # @see StreamWriter#protect_workbook
949
+ # @api public
950
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
951
+ def protect_workbook: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
952
+
953
+ # Delegates to StreamWriter#core_property.
954
+ # @see StreamWriter#core_property
955
+ # @api public
956
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
957
+ def core_property: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
958
+
959
+ # Delegates to StreamWriter#select_cell.
960
+ # @see StreamWriter#select_cell
961
+ # @api public
962
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
963
+ def select_cell: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
964
+
965
+ # Delegates to StreamWriter#page_margins.
966
+ # @see StreamWriter#page_margins
967
+ # @api public
968
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
969
+ def page_margins: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
970
+
971
+ # Delegates to StreamWriter#page_setup.
972
+ # @see StreamWriter#page_setup
973
+ # @api public
974
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
975
+ def page_setup: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
976
+
977
+ # Delegates to StreamWriter#header_footer.
978
+ # @see StreamWriter#header_footer
979
+ # @api public
980
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
981
+ def header_footer: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
982
+
983
+ # Delegates to StreamWriter#print_options.
984
+ # @see StreamWriter#print_options
985
+ # @api public
986
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
987
+ def print_options: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
988
+
989
+ # Delegates to StreamWriter#properties.
990
+ # @see StreamWriter#properties
991
+ # @api public
992
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
993
+ def properties: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
994
+
995
+ # Delegates to StreamWriter#app_property.
996
+ # @see StreamWriter#app_property
997
+ # @api public
998
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
999
+ def app_property: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1000
+
1001
+ # Delegates to StreamWriter#protect_sheet.
1002
+ # @see StreamWriter#protect_sheet
1003
+ # @api public
1004
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1005
+ def protect_sheet: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1006
+
1007
+ # Delegates to StreamWriter#custom_property.
1008
+ # @see StreamWriter#custom_property
1009
+ # @api public
1010
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1011
+ def custom_property: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1012
+
1013
+ # Delegates to StreamWriter#image.
1014
+ # @see StreamWriter#image
1015
+ # @api public
1016
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1017
+ def image: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1018
+
1019
+ # Delegates to StreamWriter#sheet_view.
1020
+ # @see StreamWriter#sheet_view
1021
+ # @api public
1022
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1023
+ def sheet_view: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1024
+
1025
+ # Delegates to StreamWriter#page_break_row.
1026
+ # @see StreamWriter#page_break_row
1027
+ # @api public
1028
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1029
+ def page_break_row: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1030
+
1031
+ # Delegates to StreamWriter#page_break_col.
1032
+ # @see StreamWriter#page_break_col
1033
+ # @api public
1034
+ # : (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1035
+ def page_break_col: (*untyped args, **untyped kwargs) ?{ (*untyped) -> untyped } -> untyped
1036
+ end
1037
+
1038
+ # Add a new sheet.
1039
+ #
1040
+ # @param name [String, nil] The name of the sheet.
1041
+ # @param opts [Hash] Sheet properties.
1042
+ # @yield [sheet_builder]
1043
+ # @yieldparam sheet_builder [Xlsxrb::WorksheetBuilder]
1044
+ # @return [void]
1045
+ # : (?String? name, **untyped opts) ?{ (WorksheetProxy) -> void } -> untyped
1046
+ def sheet: (?String? name, **untyped opts) ?{ (WorksheetProxy) -> void } -> untyped
1047
+
1048
+ # Internal: Start or switch to a named sheet (internal helper).
1049
+ # : (?String? name) ?{ (WorksheetProxy) -> void } -> (WorksheetProxy | nil)
1050
+ def internal_sheet_setup: (?String? name) ?{ (WorksheetProxy) -> void } -> (WorksheetProxy | nil)
1051
+
1052
+ # Add a row of values. values is an Array.
1053
+ # styles:: Hash mapping column indices to style names, or Array of style names for each column
1054
+ # Add a row to the sheet.
1055
+ #
1056
+ # @param values [Array, Hash] The cell values.
1057
+ # @param styles [String, Array<String>, nil] Styles to apply to cells.
1058
+ # @param height [Float, nil] The row height.
1059
+ # @param hidden [Boolean] Whether the row is hidden.
1060
+ # @param custom_height [Boolean] Whether it's a custom height.
1061
+ # @param outline_level [Integer, nil] The outline level.
1062
+ # @note Excel's column limit is 16,384, row limit is 1,048,576, string max length is 32,767.
1063
+ # @return [void]
1064
+ # : (Array[untyped] | Hash[untyped, untyped] values, ?styles: untyped, ?height: Float | Integer | nil, ?hidden: bool, ?custom_height: bool, ?outline_level: Integer | nil) -> void
1065
+ def row: (Array[untyped] | Hash[untyped, untyped] values, ?styles: untyped, ?height: Float | Integer | nil, ?hidden: bool, ?custom_height: bool, ?outline_level: Integer | nil) -> void
1066
+
1067
+ # Set column width for a 0-based column index.
1068
+ # Add a column to the sheet.
1069
+ #
1070
+ # @param index [Integer, String] The column index (0-based) or letter.
1071
+ # @param width [Float, nil] The column width.
1072
+ # @param hidden [Boolean] Whether the column is hidden.
1073
+ # @param custom_width [Boolean] Whether it's a custom width.
1074
+ # @param outline_level [Integer, nil] The outline level.
1075
+ # @note Excel's column width max is 255.
1076
+ # @return [void]
1077
+ # : (Integer | String | Range[Integer | String] | Array[Integer | String] index, ?width: Float | Integer | nil, ?hidden: bool, ?custom_width: bool, ?outline_level: Integer | nil) -> void
1078
+ def column: (Integer | String | Range[Integer | String] | Array[Integer | String] index, ?width: Float | Integer | nil, ?hidden: bool, ?custom_width: bool, ?outline_level: Integer | nil) -> void
1079
+
1080
+ # Add a chart to the current sheet.
1081
+ # : (**untyped options) ?{ (ChartBuilder) -> void } -> void
1082
+ def chart: (**untyped options) ?{ (ChartBuilder) -> void } -> void
1083
+
1084
+ # --- Hyperlinks ---
1085
+ # : (String | Integer cell, ?String? url, ?display: String?, ?tooltip: String?, ?location: String?) -> void
1086
+ def hyperlink: (String | Integer cell, ?String? url, ?display: String?, ?tooltip: String?, ?location: String?) -> void
1087
+
1088
+ # --- Auto Filter / Sort ---
1089
+ # : (String range) -> void
1090
+ def auto_filter: (String range) -> void
1091
+
1092
+ # : (untyped col_id, untyped filter) -> untyped
1093
+ def filter_column: (untyped col_id, untyped filter) -> untyped
1094
+
1095
+ # : (untyped ref, untyped sort_conditions, **untyped opts) -> untyped
1096
+ def sort_state: (untyped ref, untyped sort_conditions, **untyped opts) -> untyped
1097
+
1098
+ # --- Data Validation ---
1099
+ # : (untyped sqref, **untyped opts) -> void
1100
+ def validate_data: (untyped sqref, **untyped opts) -> void
1101
+
1102
+ # --- Conditional Formatting ---
1103
+ # : (untyped sqref, **untyped opts) -> void
1104
+ def conditional_format: (untyped sqref, **untyped opts) -> void
1105
+
1106
+ # --- Tables ---
1107
+ # : (untyped ref, **untyped opts) -> void
1108
+ def table: (untyped ref, **untyped opts) -> void
1109
+
1110
+ # --- Pivot Tables ---
1111
+ # : (untyped source_ref, **untyped opts) -> void
1112
+ def pivot_table: (untyped source_ref, **untyped opts) -> void
1113
+
1114
+ # --- Comments ---
1115
+ # : (String | Integer cell, String text, ?author: ::String) -> void
1116
+ def comment: (String | Integer cell, String text, ?author: ::String) -> void
1117
+
1118
+ # --- Sparklines ---
1119
+ # : (**untyped opts) -> void
1120
+ def sparkline_group: (**untyped opts) -> void
1121
+
1122
+ # Merge a range of cells (e.g. "A1:B2"), or by coordinate indices.
1123
+ #
1124
+ # @param range [String, nil] The string range.
1125
+ # @param row [Integer, nil] Single row index.
1126
+ # @param col_start [Integer, nil] Starting column index.
1127
+ # @param col_end [Integer, nil] Ending column index.
1128
+ # @param row_start [Integer, nil] Starting row index.
1129
+ # @param row_end [Integer, nil] Ending row index.
1130
+ # @return [void]
1131
+ # : (?(String | Hash[Symbol, Integer | String])? range, ?row: Integer?, ?col_start: (Integer | String)?, ?col_end: (Integer | String)?, ?row_start: Integer?, ?row_end: Integer?) -> void
1132
+ def merge: (?(String | Hash[Symbol, Integer | String])? range, ?row: Integer?, ?col_start: (Integer | String)?, ?col_end: (Integer | String)?, ?row_start: Integer?, ?row_end: Integer?) -> void
1133
+
1134
+ # Freeze panes at the given row and column.
1135
+ #
1136
+ # @param row [Integer] The row index to freeze at (0-based).
1137
+ # @param col [Integer, String] The column index to freeze at (0-based or letter).
1138
+ # @return [void]
1139
+ # : (?row: Integer, ?col: (Integer | String)) -> void
1140
+ def freeze_pane: (?row: Integer, ?col: Integer | String) -> void
1141
+
1142
+ # : (?x_split: ::Integer, ?y_split: ::Integer, ?top_left_cell: String?) -> void
1143
+ def split_pane: (?x_split: ::Integer, ?y_split: ::Integer, ?top_left_cell: String?) -> void
1144
+
1145
+ # : (String active_cell, ?sqref: String?, ?pane: (String | Symbol)?) -> void
1146
+ def select_cell: (String active_cell, ?sqref: String?, ?pane: (String | Symbol)?) -> void
1147
+
1148
+ # --- Page Setup / Margins / Print ---
1149
+ # : (?left: Float?, ?right: Float?, ?top: Float?, ?bottom: Float?, ?header: Float?, ?footer: Float?) -> void
1150
+ def page_margins: (?left: Float?, ?right: Float?, ?top: Float?, ?bottom: Float?, ?header: Float?, ?footer: Float?) -> void
1151
+
1152
+ # : (**untyped opts) -> void
1153
+ def page_setup: (**untyped opts) -> void
1154
+
1155
+ # : (**untyped opts) -> void
1156
+ def header_footer: (**untyped opts) -> void
1157
+
1158
+ # : (Symbol name, untyped value) -> void
1159
+ def print_options: (Symbol name, untyped value) -> void
1160
+
1161
+ # --- Sheet Protection ---
1162
+ # : (**untyped opts) -> void
1163
+ def protect_sheet: (**untyped opts) -> void
1164
+
1165
+ # --- Images ---
1166
+ # : (String file_data, ?ext: ::String, ?from_col: ::Integer, ?from_row: ::Integer, ?to_col: ::Integer, ?to_row: ::Integer, **untyped opts) -> void
1167
+ def image: (String file_data, ?ext: ::String, ?from_col: ::Integer, ?from_row: ::Integer, ?to_col: ::Integer, ?to_row: ::Integer, **untyped opts) -> void
1168
+
1169
+ # --- Shapes ---
1170
+ # : (**untyped opts) -> void
1171
+ def shape: (**untyped opts) -> void
1172
+
1173
+ # --- Sheet Properties ---
1174
+ # : (Symbol name, untyped value) -> void
1175
+ def sheet_properties: (Symbol name, untyped value) -> void
1176
+
1177
+ # : (Symbol name, untyped value) -> void
1178
+ def sheet_view: (Symbol name, untyped value) -> void
1179
+
1180
+ # --- Row / Column Breaks ---
1181
+ # : (Integer row_num) -> void
1182
+ def page_break_row: (Integer row_num) -> void
1183
+
1184
+ # : (Integer col_index) -> void
1185
+ def page_break_col: (Integer col_index) -> void
1186
+
1187
+ # Add a defined name.
1188
+ #
1189
+ # @param name [String] The defined name.
1190
+ # @param value [String] The formula or value.
1191
+ # @param sheet [String, nil] Local sheet name.
1192
+ # @param hidden [Boolean] Whether the defined name is hidden.
1193
+ # @return [void]
1194
+ # : (String name, String value, ?sheet: String?, ?hidden: bool) -> void
1195
+ def defined_name: (String name, String value, ?sheet: String?, ?hidden: bool) -> void
1196
+
1197
+ # Set the print area for the current or named sheet.
1198
+ # : (String range, ?sheet: String?) -> void
1199
+ def print_area: (String range, ?sheet: String?) -> void
1200
+
1201
+ # Set print titles for the current or named sheet.
1202
+ # : (?rows: String?, ?cols: String?, ?sheet: String?) -> void
1203
+ def print_titles: (?rows: String?, ?cols: String?, ?sheet: String?) -> void
1204
+
1205
+ # Set workbook protection.
1206
+ #
1207
+ # @param opts [Hash] Protection options.
1208
+ # @return [void]
1209
+ # : (**String | Integer | bool | nil opts) -> void
1210
+ def protect_workbook: (**String | Integer | bool | nil opts) -> void
1211
+
1212
+ # Set a core document property.
1213
+ #
1214
+ # @param name [Symbol] The property name.
1215
+ # @param value [String, Integer, Time] The property value.
1216
+ # @return [void]
1217
+ # : (Symbol name, String | Integer | Time value) -> void
1218
+ def core_property: (Symbol name, String | Integer | Time value) -> void
1219
+
1220
+ # Set an app document property.
1221
+ #
1222
+ # @param name [Symbol] The property name.
1223
+ # @param value [String, Integer, Time] The property value.
1224
+ # @return [void]
1225
+ # : (Symbol name, String | Integer | Time value) -> void
1226
+ def app_property: (Symbol name, String | Integer | Time value) -> void
1227
+
1228
+ # Set multiple core and/or app properties.
1229
+ #
1230
+ # @param core [Hash, nil] Core properties.
1231
+ # @param app [Hash, nil] App properties.
1232
+ # @return [void]
1233
+ # : (?core: Hash[Symbol, String | Integer | Time]?, ?app: Hash[Symbol, String | Integer | Time]?) -> void
1234
+ def properties: (?core: Hash[Symbol, String | Integer | Time]?, ?app: Hash[Symbol, String | Integer | Time]?) -> void
1235
+
1236
+ # Add a custom document property.
1237
+ #
1238
+ # @param name [String] The property name.
1239
+ # @param value [String, Integer, Float, Boolean, Time] The property value.
1240
+ # @param type [Symbol] The type of property (:string, :number, :bool, :date).
1241
+ # @return [void]
1242
+ # : (String name, String | Integer | Float | bool | Time value, ?type: ::Symbol) -> void
1243
+ def custom_property: (String name, String | Integer | Float | bool | Time value, ?type: ::Symbol) -> void
1244
+
1245
+ # : () -> untyped
1246
+ def close: () -> untyped
1247
+
1248
+ # Explicitly remove any remaining tempfiles. Called via ensure block.
1249
+ # : () -> void
1250
+ def cleanup!: () -> void
1251
+
1252
+ private
1253
+
1254
+ # : (untyped range) -> untyped
1255
+ def absolute_range: (untyped range) -> untyped
1256
+
1257
+ # : (untyped names, untyped sheets) -> untyped
1258
+ def resolve_defined_names: (untyped names, untyped sheets) -> untyped
1259
+
1260
+ # : () -> (nil | untyped)
1261
+ def flush_current_sheet: () -> (nil | untyped)
1262
+ end
1263
+
1264
+ private def self.build_worksheet: (untyped name, untyped sheet_xml, untyped shared_strings, untyped _styles) -> untyped
1265
+
1266
+ private def self.build_row_from_raw: (untyped raw_row) -> untyped
1267
+
1268
+ private def self.build_raw_cell: (untyped cell, untyped sst, untyped sst_index) -> untyped
1269
+
1270
+ private def self.build_row_attrs: (untyped row) -> untyped
1271
+
1272
+ # Builds a raw cell hash from a value for streaming writes.
1273
+ # @api public
1274
+ # : (untyped row_index, untyped col_index, untyped value, untyped sst, untyped sst_index) -> untyped
1275
+ def self.build_raw_cell_from_value: (untyped row_index, untyped col_index, untyped value, untyped sst, untyped sst_index) -> untyped
1276
+ end