caxlsx 3.4.1 → 4.0.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -1
- data/README.md +9 -11
- data/Rakefile +7 -5
- data/lib/axlsx/content_type/abstract_content_type.rb +9 -4
- data/lib/axlsx/content_type/content_type.rb +7 -5
- data/lib/axlsx/content_type/default.rb +4 -2
- data/lib/axlsx/content_type/override.rb +4 -2
- data/lib/axlsx/doc_props/app.rb +26 -24
- data/lib/axlsx/doc_props/core.rb +8 -6
- data/lib/axlsx/drawing/area_chart.rb +10 -8
- data/lib/axlsx/drawing/area_series.rb +12 -10
- data/lib/axlsx/drawing/ax_data_source.rb +2 -0
- data/lib/axlsx/drawing/axes.rb +6 -4
- data/lib/axlsx/drawing/axis.rb +21 -19
- data/lib/axlsx/drawing/bar_3D_chart.rb +14 -12
- data/lib/axlsx/drawing/bar_chart.rb +13 -11
- data/lib/axlsx/drawing/bar_series.rb +8 -6
- data/lib/axlsx/drawing/bubble_chart.rb +6 -4
- data/lib/axlsx/drawing/bubble_series.rb +8 -6
- data/lib/axlsx/drawing/cat_axis.rb +12 -10
- data/lib/axlsx/drawing/chart.rb +20 -18
- data/lib/axlsx/drawing/d_lbls.rb +7 -5
- data/lib/axlsx/drawing/drawing.rb +58 -56
- data/lib/axlsx/drawing/graphic_frame.rb +6 -4
- data/lib/axlsx/drawing/hyperlink.rb +10 -8
- data/lib/axlsx/drawing/line_3D_chart.rb +7 -5
- data/lib/axlsx/drawing/line_chart.rb +10 -8
- data/lib/axlsx/drawing/line_series.rb +12 -10
- data/lib/axlsx/drawing/marker.rb +9 -7
- data/lib/axlsx/drawing/num_data.rb +9 -7
- data/lib/axlsx/drawing/num_data_source.rb +9 -7
- data/lib/axlsx/drawing/num_val.rb +7 -5
- data/lib/axlsx/drawing/one_cell_anchor.rb +7 -5
- data/lib/axlsx/drawing/pic.rb +16 -14
- data/lib/axlsx/drawing/picture_locking.rb +3 -1
- data/lib/axlsx/drawing/pie_3D_chart.rb +5 -3
- data/lib/axlsx/drawing/pie_series.rb +8 -6
- data/lib/axlsx/drawing/scaling.rb +8 -6
- data/lib/axlsx/drawing/scatter_chart.rb +7 -5
- data/lib/axlsx/drawing/scatter_series.rb +14 -12
- data/lib/axlsx/drawing/ser_axis.rb +7 -5
- data/lib/axlsx/drawing/series.rb +6 -4
- data/lib/axlsx/drawing/series_title.rb +6 -4
- data/lib/axlsx/drawing/str_data.rb +7 -5
- data/lib/axlsx/drawing/str_val.rb +6 -4
- data/lib/axlsx/drawing/title.rb +13 -14
- data/lib/axlsx/drawing/two_cell_anchor.rb +4 -2
- data/lib/axlsx/drawing/val_axis.rb +4 -2
- data/lib/axlsx/drawing/view_3D.rb +9 -7
- data/lib/axlsx/drawing/vml_drawing.rb +18 -16
- data/lib/axlsx/drawing/vml_shape.rb +24 -22
- data/lib/axlsx/package.rb +69 -66
- data/lib/axlsx/rels/relationship.rb +10 -5
- data/lib/axlsx/rels/relationships.rb +5 -3
- data/lib/axlsx/stylesheet/border.rb +6 -4
- data/lib/axlsx/stylesheet/border_pr.rb +5 -3
- data/lib/axlsx/stylesheet/cell_alignment.rb +12 -10
- data/lib/axlsx/stylesheet/cell_protection.rb +5 -3
- data/lib/axlsx/stylesheet/cell_style.rb +10 -8
- data/lib/axlsx/stylesheet/color.rb +9 -7
- data/lib/axlsx/stylesheet/dxf.rb +5 -3
- data/lib/axlsx/stylesheet/fill.rb +3 -1
- data/lib/axlsx/stylesheet/font.rb +18 -16
- data/lib/axlsx/stylesheet/gradient_fill.rb +6 -4
- data/lib/axlsx/stylesheet/gradient_stop.rb +6 -4
- data/lib/axlsx/stylesheet/num_fmt.rb +8 -10
- data/lib/axlsx/stylesheet/pattern_fill.rb +5 -3
- data/lib/axlsx/stylesheet/styles.rb +69 -71
- data/lib/axlsx/stylesheet/table_style.rb +7 -5
- data/lib/axlsx/stylesheet/table_style_element.rb +6 -4
- data/lib/axlsx/stylesheet/table_styles.rb +6 -4
- data/lib/axlsx/stylesheet/xf.rb +18 -16
- data/lib/axlsx/util/accessors.rb +4 -2
- data/lib/axlsx/util/buffered_zip_output_stream.rb +60 -0
- data/lib/axlsx/util/constants.rb +117 -104
- data/lib/axlsx/util/mime_type_utils.rb +3 -5
- data/lib/axlsx/util/options_parser.rb +3 -1
- data/lib/axlsx/util/serialized_attributes.rb +42 -17
- data/lib/axlsx/util/simple_typed_list.rb +47 -47
- data/lib/axlsx/util/storage.rb +11 -10
- data/lib/axlsx/util/validators.rb +101 -41
- data/lib/axlsx/util/zip_command.rb +10 -10
- data/lib/axlsx/version.rb +3 -1
- data/lib/axlsx/workbook/defined_name.rb +6 -4
- data/lib/axlsx/workbook/defined_names.rb +3 -1
- data/lib/axlsx/workbook/shared_strings_table.rb +8 -6
- data/lib/axlsx/workbook/workbook.rb +78 -76
- data/lib/axlsx/workbook/workbook_view.rb +3 -1
- data/lib/axlsx/workbook/workbook_views.rb +3 -1
- data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +65 -8
- data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +7 -3
- data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +11 -7
- data/lib/axlsx/workbook/worksheet/auto_filter/sort_condition.rb +51 -0
- data/lib/axlsx/workbook/worksheet/auto_filter/sort_state.rb +56 -0
- data/lib/axlsx/workbook/worksheet/border_creator.rb +5 -3
- data/lib/axlsx/workbook/worksheet/break.rb +3 -1
- data/lib/axlsx/workbook/worksheet/cell.rb +53 -54
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +31 -27
- data/lib/axlsx/workbook/worksheet/cfvo.rb +5 -3
- data/lib/axlsx/workbook/worksheet/cfvos.rb +3 -1
- data/lib/axlsx/workbook/worksheet/col.rb +5 -3
- data/lib/axlsx/workbook/worksheet/col_breaks.rb +5 -3
- data/lib/axlsx/workbook/worksheet/color_scale.rb +12 -10
- data/lib/axlsx/workbook/worksheet/cols.rb +3 -1
- data/lib/axlsx/workbook/worksheet/comment.rb +8 -6
- data/lib/axlsx/workbook/worksheet/comments.rb +6 -4
- data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +9 -4
- data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +18 -16
- data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +3 -1
- data/lib/axlsx/workbook/worksheet/data_bar.rb +14 -13
- data/lib/axlsx/workbook/worksheet/data_validation.rb +30 -28
- data/lib/axlsx/workbook/worksheet/data_validations.rb +3 -1
- data/lib/axlsx/workbook/worksheet/date_time_converter.rb +7 -5
- data/lib/axlsx/workbook/worksheet/dimension.rb +4 -2
- data/lib/axlsx/workbook/worksheet/header_footer.rb +4 -2
- data/lib/axlsx/workbook/worksheet/icon_set.rb +23 -6
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +5 -5
- data/lib/axlsx/workbook/worksheet/outline_pr.rb +6 -2
- data/lib/axlsx/workbook/worksheet/page_margins.rb +15 -10
- data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +6 -2
- data/lib/axlsx/workbook/worksheet/page_setup.rb +11 -9
- data/lib/axlsx/workbook/worksheet/pane.rb +11 -9
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +20 -19
- data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +8 -6
- data/lib/axlsx/workbook/worksheet/pivot_tables.rb +2 -0
- data/lib/axlsx/workbook/worksheet/print_options.rb +3 -1
- data/lib/axlsx/workbook/worksheet/protected_range.rb +3 -1
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +5 -3
- data/lib/axlsx/workbook/worksheet/rich_text.rb +3 -1
- data/lib/axlsx/workbook/worksheet/rich_text_run.rb +16 -14
- data/lib/axlsx/workbook/worksheet/row.rb +6 -7
- data/lib/axlsx/workbook/worksheet/row_breaks.rb +6 -4
- data/lib/axlsx/workbook/worksheet/selection.rb +9 -7
- data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +6 -2
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +3 -1
- data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +6 -2
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +8 -4
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +10 -8
- data/lib/axlsx/workbook/worksheet/sheet_view.rb +15 -13
- data/lib/axlsx/workbook/worksheet/table.rb +9 -7
- data/lib/axlsx/workbook/worksheet/table_style_info.rb +4 -2
- data/lib/axlsx/workbook/worksheet/tables.rb +3 -1
- data/lib/axlsx/workbook/worksheet/worksheet.rb +38 -37
- data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +4 -2
- data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +8 -2
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +6 -4
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +4 -2
- data/lib/axlsx.rb +56 -42
- data/lib/caxlsx.rb +3 -1
- metadata +49 -43
data/lib/axlsx.rb
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'htmlentities'
|
|
2
|
-
require 'axlsx/version
|
|
4
|
+
require 'axlsx/version'
|
|
3
5
|
require 'marcel'
|
|
4
6
|
|
|
5
|
-
require 'axlsx/util/simple_typed_list
|
|
6
|
-
require 'axlsx/util/constants
|
|
7
|
-
require 'axlsx/util/validators
|
|
8
|
-
require 'axlsx/util/accessors
|
|
7
|
+
require 'axlsx/util/simple_typed_list'
|
|
8
|
+
require 'axlsx/util/constants'
|
|
9
|
+
require 'axlsx/util/validators'
|
|
10
|
+
require 'axlsx/util/accessors'
|
|
9
11
|
require 'axlsx/util/serialized_attributes'
|
|
10
12
|
require 'axlsx/util/options_parser'
|
|
11
13
|
require 'axlsx/util/mime_type_utils'
|
|
14
|
+
require 'axlsx/util/buffered_zip_output_stream'
|
|
12
15
|
require 'axlsx/util/zip_command'
|
|
13
16
|
|
|
14
|
-
require 'axlsx/stylesheet/styles
|
|
17
|
+
require 'axlsx/stylesheet/styles'
|
|
15
18
|
|
|
16
|
-
require 'axlsx/doc_props/app
|
|
17
|
-
require 'axlsx/doc_props/core
|
|
18
|
-
require 'axlsx/content_type/content_type
|
|
19
|
-
require 'axlsx/rels/relationships
|
|
19
|
+
require 'axlsx/doc_props/app'
|
|
20
|
+
require 'axlsx/doc_props/core'
|
|
21
|
+
require 'axlsx/content_type/content_type'
|
|
22
|
+
require 'axlsx/rels/relationships'
|
|
20
23
|
|
|
21
|
-
require 'axlsx/drawing/drawing
|
|
22
|
-
require 'axlsx/workbook/workbook
|
|
23
|
-
require 'axlsx/package
|
|
24
|
+
require 'axlsx/drawing/drawing'
|
|
25
|
+
require 'axlsx/workbook/workbook'
|
|
26
|
+
require 'axlsx/package'
|
|
24
27
|
# required gems
|
|
25
28
|
require 'nokogiri'
|
|
26
29
|
require 'zip'
|
|
27
30
|
|
|
28
31
|
# core dependencies
|
|
29
32
|
require 'bigdecimal'
|
|
33
|
+
require 'cgi'
|
|
30
34
|
require 'set'
|
|
31
35
|
require 'time'
|
|
32
36
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
raise StandardError.new("Please remove `axlsx_styler` from your Gemfile, the associated functionality is now built-in to `caxlsx` directly.")
|
|
36
|
-
end
|
|
37
|
-
rescue
|
|
38
|
-
# Do nothing
|
|
37
|
+
if Gem.loaded_specs.key?("axlsx_styler")
|
|
38
|
+
raise StandardError, "Please remove `axlsx_styler` from your Gemfile, the associated functionality is now built-in to `caxlsx` directly."
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
# xlsx generation with charts, images, automated column width, customizable styles
|
|
@@ -50,7 +50,7 @@ module Axlsx
|
|
|
50
50
|
#
|
|
51
51
|
# Defining as a class method on Axlsx to refrain from monkeypatching Object for all users of this gem.
|
|
52
52
|
def self.instance_values_for(object)
|
|
53
|
-
|
|
53
|
+
object.instance_variables.to_h { |name| [name.to_s[1..], object.instance_variable_get(name)] }
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
# determines the cell range for the items provided
|
|
@@ -88,7 +88,7 @@ module Axlsx
|
|
|
88
88
|
letters_str = name[/[A-Z]+/]
|
|
89
89
|
|
|
90
90
|
# capitalization?!?
|
|
91
|
-
v = letters_str.reverse.chars.reduce({ :
|
|
91
|
+
v = letters_str.reverse.chars.reduce({ base: 1, i: 0 }) do |val, c|
|
|
92
92
|
val[:i] += ((c.bytes.first - 64) * val[:base])
|
|
93
93
|
|
|
94
94
|
val[:base] *= 26
|
|
@@ -102,37 +102,51 @@ module Axlsx
|
|
|
102
102
|
|
|
103
103
|
row_index = (numbers_str.to_i - 1)
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
[col_index, row_index]
|
|
106
106
|
end
|
|
107
107
|
|
|
108
108
|
# converts the column index into alphabetical values.
|
|
109
109
|
# @note This follows the standard spreadsheet convention of naming columns A to Z, followed by AA to AZ etc.
|
|
110
110
|
# @return [String]
|
|
111
111
|
def self.col_ref(index)
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
112
|
+
# Every row will call this for each column / cell and so we can cache result and avoid lots of small object
|
|
113
|
+
# allocations.
|
|
114
|
+
@col_ref ||= {}
|
|
115
|
+
@col_ref[index] ||= begin
|
|
116
|
+
i = index
|
|
117
|
+
chars = +''
|
|
118
|
+
while i >= 26
|
|
119
|
+
i, char = i.divmod(26)
|
|
120
|
+
chars.prepend((char + 65).chr)
|
|
121
|
+
i -= 1
|
|
122
|
+
end
|
|
123
|
+
chars.prepend((i + 65).chr)
|
|
124
|
+
chars.freeze
|
|
117
125
|
end
|
|
118
|
-
|
|
119
|
-
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# converts the row index into string values.
|
|
129
|
+
# @note The spreadsheet rows are 1-based and the passed in index is 0-based, so we add 1.
|
|
130
|
+
# @return [String]
|
|
131
|
+
def self.row_ref(index)
|
|
132
|
+
@row_ref ||= {}
|
|
133
|
+
@row_ref[index] ||= (index + 1).to_s.freeze
|
|
120
134
|
end
|
|
121
135
|
|
|
122
136
|
# @return [String] The alpha(column)numeric(row) reference for this sell.
|
|
123
137
|
# @example Relative Cell Reference
|
|
124
138
|
# ws.rows.first.cells.first.r #=> "A1"
|
|
125
139
|
def self.cell_r(c_index, r_index)
|
|
126
|
-
col_ref(c_index)
|
|
140
|
+
col_ref(c_index) + row_ref(r_index)
|
|
127
141
|
end
|
|
128
142
|
|
|
129
|
-
# Creates an array of individual cell references based on an
|
|
143
|
+
# Creates an array of individual cell references based on an Excel reference range.
|
|
130
144
|
# @param [String] range A cell range, for example A1:D5
|
|
131
145
|
# @return [Array]
|
|
132
146
|
def self.range_to_a(range)
|
|
133
|
-
range
|
|
134
|
-
start_col, start_row = name_to_indices(
|
|
135
|
-
end_col, end_row = name_to_indices(
|
|
147
|
+
range =~ /^(\w+?\d+):(\w+?\d+)$/
|
|
148
|
+
start_col, start_row = name_to_indices(::Regexp.last_match(1))
|
|
149
|
+
end_col, end_row = name_to_indices(::Regexp.last_match(2))
|
|
136
150
|
(start_row..end_row).to_a.map do |row_num|
|
|
137
151
|
(start_col..end_col).to_a.map do |col_num|
|
|
138
152
|
cell_r(col_num, row_num)
|
|
@@ -146,7 +160,7 @@ module Axlsx
|
|
|
146
160
|
def self.camel(s = "", all_caps = true)
|
|
147
161
|
s = s.to_s
|
|
148
162
|
s = s.capitalize if all_caps
|
|
149
|
-
s.gsub(/_(.)/) {
|
|
163
|
+
s.gsub(/_(.)/) { ::Regexp.last_match(1).upcase }
|
|
150
164
|
end
|
|
151
165
|
|
|
152
166
|
# returns the provided string with all invalid control charaters
|
|
@@ -167,18 +181,18 @@ module Axlsx
|
|
|
167
181
|
# @param [Object] value The value to process
|
|
168
182
|
# @return [Object]
|
|
169
183
|
def self.booleanize(value)
|
|
170
|
-
if value
|
|
171
|
-
value ? 1 : 0
|
|
184
|
+
if BOOLEAN_VALUES.include?(value)
|
|
185
|
+
value ? '1' : '0'
|
|
172
186
|
else
|
|
173
187
|
value
|
|
174
188
|
end
|
|
175
189
|
end
|
|
176
190
|
|
|
177
191
|
# utility method for performing a deep merge on a Hash
|
|
178
|
-
# @param [Hash] Hash to merge into
|
|
179
|
-
# @param [Hash] Hash to be added
|
|
192
|
+
# @param [Hash] first_hash Hash to merge into
|
|
193
|
+
# @param [Hash] second_hash Hash to be added
|
|
180
194
|
def self.hash_deep_merge(first_hash, second_hash)
|
|
181
|
-
first_hash.merge(second_hash) do |
|
|
195
|
+
first_hash.merge(second_hash) do |_key, this_val, other_val|
|
|
182
196
|
if this_val.is_a?(Hash) && other_val.is_a?(Hash)
|
|
183
197
|
Axlsx.hash_deep_merge(this_val, other_val)
|
|
184
198
|
else
|
|
@@ -189,7 +203,7 @@ module Axlsx
|
|
|
189
203
|
|
|
190
204
|
# Instructs the serializer to not try to escape cell value input.
|
|
191
205
|
# This will give you a huge speed bonus, but if you content has <, > or other xml character data
|
|
192
|
-
# the workbook will be invalid and
|
|
206
|
+
# the workbook will be invalid and Excel will complain.
|
|
193
207
|
def self.trust_input
|
|
194
208
|
@trust_input ||= false
|
|
195
209
|
end
|
|
@@ -206,7 +220,7 @@ module Axlsx
|
|
|
206
220
|
# See https://www.owasp.org/index.php/CSV_Injection for details.
|
|
207
221
|
# @return [Boolean]
|
|
208
222
|
def self.escape_formulas
|
|
209
|
-
!defined?(@escape_formulas) || @escape_formulas.nil? ?
|
|
223
|
+
!defined?(@escape_formulas) || @escape_formulas.nil? ? true : @escape_formulas
|
|
210
224
|
end
|
|
211
225
|
|
|
212
226
|
# Sets whether to treat values starting with an equals sign as formulas or as literal strings.
|
data/lib/caxlsx.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: caxlsx
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 4.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Randy Morgan
|
|
@@ -9,131 +9,133 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2023-
|
|
12
|
+
date: 2023-10-30 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
|
-
name:
|
|
15
|
+
name: htmlentities
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
requirements:
|
|
18
18
|
- - "~>"
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
|
-
version: '
|
|
20
|
+
version: '4.3'
|
|
21
21
|
- - ">="
|
|
22
22
|
- !ruby/object:Gem::Version
|
|
23
|
-
version:
|
|
23
|
+
version: 4.3.4
|
|
24
24
|
type: :runtime
|
|
25
25
|
prerelease: false
|
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
|
27
27
|
requirements:
|
|
28
28
|
- - "~>"
|
|
29
29
|
- !ruby/object:Gem::Version
|
|
30
|
-
version: '
|
|
30
|
+
version: '4.3'
|
|
31
31
|
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
33
|
+
version: 4.3.4
|
|
34
34
|
- !ruby/object:Gem::Dependency
|
|
35
|
-
name:
|
|
35
|
+
name: marcel
|
|
36
36
|
requirement: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- - "
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: 1.3.0
|
|
41
|
-
- - "<"
|
|
38
|
+
- - "~>"
|
|
42
39
|
- !ruby/object:Gem::Version
|
|
43
|
-
version: '
|
|
40
|
+
version: '1.0'
|
|
44
41
|
type: :runtime
|
|
45
42
|
prerelease: false
|
|
46
43
|
version_requirements: !ruby/object:Gem::Requirement
|
|
47
44
|
requirements:
|
|
48
|
-
- - "
|
|
49
|
-
- !ruby/object:Gem::Version
|
|
50
|
-
version: 1.3.0
|
|
51
|
-
- - "<"
|
|
45
|
+
- - "~>"
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '
|
|
47
|
+
version: '1.0'
|
|
54
48
|
- !ruby/object:Gem::Dependency
|
|
55
|
-
name:
|
|
49
|
+
name: nokogiri
|
|
56
50
|
requirement: !ruby/object:Gem::Requirement
|
|
57
51
|
requirements:
|
|
58
52
|
- - "~>"
|
|
59
53
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '
|
|
54
|
+
version: '1.10'
|
|
61
55
|
- - ">="
|
|
62
56
|
- !ruby/object:Gem::Version
|
|
63
|
-
version:
|
|
57
|
+
version: 1.10.4
|
|
64
58
|
type: :runtime
|
|
65
59
|
prerelease: false
|
|
66
60
|
version_requirements: !ruby/object:Gem::Requirement
|
|
67
61
|
requirements:
|
|
68
62
|
- - "~>"
|
|
69
63
|
- !ruby/object:Gem::Version
|
|
70
|
-
version: '
|
|
64
|
+
version: '1.10'
|
|
71
65
|
- - ">="
|
|
72
66
|
- !ruby/object:Gem::Version
|
|
73
|
-
version:
|
|
67
|
+
version: 1.10.4
|
|
74
68
|
- !ruby/object:Gem::Dependency
|
|
75
|
-
name:
|
|
69
|
+
name: rubyzip
|
|
76
70
|
requirement: !ruby/object:Gem::Requirement
|
|
77
71
|
requirements:
|
|
78
|
-
- - "
|
|
72
|
+
- - ">="
|
|
79
73
|
- !ruby/object:Gem::Version
|
|
80
|
-
version:
|
|
74
|
+
version: 1.3.0
|
|
75
|
+
- - "<"
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: '3'
|
|
81
78
|
type: :runtime
|
|
82
79
|
prerelease: false
|
|
83
80
|
version_requirements: !ruby/object:Gem::Requirement
|
|
84
81
|
requirements:
|
|
85
|
-
- - "
|
|
82
|
+
- - ">="
|
|
86
83
|
- !ruby/object:Gem::Version
|
|
87
|
-
version:
|
|
84
|
+
version: 1.3.0
|
|
85
|
+
- - "<"
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '3'
|
|
88
88
|
- !ruby/object:Gem::Dependency
|
|
89
|
-
name:
|
|
89
|
+
name: kramdown
|
|
90
90
|
requirement: !ruby/object:Gem::Requirement
|
|
91
91
|
requirements:
|
|
92
92
|
- - "~>"
|
|
93
93
|
- !ruby/object:Gem::Version
|
|
94
|
-
version:
|
|
94
|
+
version: '2.3'
|
|
95
95
|
type: :development
|
|
96
96
|
prerelease: false
|
|
97
97
|
version_requirements: !ruby/object:Gem::Requirement
|
|
98
98
|
requirements:
|
|
99
99
|
- - "~>"
|
|
100
100
|
- !ruby/object:Gem::Version
|
|
101
|
-
version:
|
|
101
|
+
version: '2.3'
|
|
102
102
|
- !ruby/object:Gem::Dependency
|
|
103
|
-
name:
|
|
103
|
+
name: timecop
|
|
104
104
|
requirement: !ruby/object:Gem::Requirement
|
|
105
105
|
requirements:
|
|
106
106
|
- - "~>"
|
|
107
107
|
- !ruby/object:Gem::Version
|
|
108
|
-
version:
|
|
108
|
+
version: 0.9.0
|
|
109
109
|
type: :development
|
|
110
110
|
prerelease: false
|
|
111
111
|
version_requirements: !ruby/object:Gem::Requirement
|
|
112
112
|
requirements:
|
|
113
113
|
- - "~>"
|
|
114
114
|
- !ruby/object:Gem::Version
|
|
115
|
-
version:
|
|
115
|
+
version: 0.9.0
|
|
116
116
|
- !ruby/object:Gem::Dependency
|
|
117
|
-
name:
|
|
117
|
+
name: yard
|
|
118
118
|
requirement: !ruby/object:Gem::Requirement
|
|
119
119
|
requirements:
|
|
120
120
|
- - "~>"
|
|
121
121
|
- !ruby/object:Gem::Version
|
|
122
|
-
version: 0.9.
|
|
122
|
+
version: 0.9.8
|
|
123
123
|
type: :development
|
|
124
124
|
prerelease: false
|
|
125
125
|
version_requirements: !ruby/object:Gem::Requirement
|
|
126
126
|
requirements:
|
|
127
127
|
- - "~>"
|
|
128
128
|
- !ruby/object:Gem::Version
|
|
129
|
-
version: 0.9.
|
|
130
|
-
description:
|
|
131
|
-
|
|
132
|
-
Office Open XML Spreadsheet documents (
|
|
129
|
+
version: 0.9.8
|
|
130
|
+
description: 'xlsx spreadsheet generation with charts, images, automated column width,
|
|
131
|
+
customizable styles and full schema validation. Axlsx helps you create beautiful
|
|
132
|
+
Office Open XML Spreadsheet documents (Excel, Google Spreadsheets, Numbers, LibreOffice)
|
|
133
133
|
without having to understand the entire ECMA specification. Check out the README
|
|
134
134
|
for some examples of how easy it is. Best of all, you can validate your xlsx file
|
|
135
135
|
before serialization so you know for sure that anything generated is going to load
|
|
136
|
-
on your client's machine
|
|
136
|
+
on your client''s machine.
|
|
137
|
+
|
|
138
|
+
'
|
|
137
139
|
email: noel@peden.biz
|
|
138
140
|
executables: []
|
|
139
141
|
extensions: []
|
|
@@ -218,6 +220,7 @@ files:
|
|
|
218
220
|
- lib/axlsx/stylesheet/table_styles.rb
|
|
219
221
|
- lib/axlsx/stylesheet/xf.rb
|
|
220
222
|
- lib/axlsx/util/accessors.rb
|
|
223
|
+
- lib/axlsx/util/buffered_zip_output_stream.rb
|
|
221
224
|
- lib/axlsx/util/constants.rb
|
|
222
225
|
- lib/axlsx/util/mime_type_utils.rb
|
|
223
226
|
- lib/axlsx/util/options_parser.rb
|
|
@@ -236,6 +239,8 @@ files:
|
|
|
236
239
|
- lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb
|
|
237
240
|
- lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb
|
|
238
241
|
- lib/axlsx/workbook/worksheet/auto_filter/filters.rb
|
|
242
|
+
- lib/axlsx/workbook/worksheet/auto_filter/sort_condition.rb
|
|
243
|
+
- lib/axlsx/workbook/worksheet/auto_filter/sort_state.rb
|
|
239
244
|
- lib/axlsx/workbook/worksheet/border_creator.rb
|
|
240
245
|
- lib/axlsx/workbook/worksheet/break.rb
|
|
241
246
|
- lib/axlsx/workbook/worksheet/cell.rb
|
|
@@ -328,7 +333,8 @@ files:
|
|
|
328
333
|
homepage: https://github.com/caxlsx/caxlsx
|
|
329
334
|
licenses:
|
|
330
335
|
- MIT
|
|
331
|
-
metadata:
|
|
336
|
+
metadata:
|
|
337
|
+
rubygems_mfa_required: 'true'
|
|
332
338
|
post_install_message:
|
|
333
339
|
rdoc_options: []
|
|
334
340
|
require_paths:
|
|
@@ -337,7 +343,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
337
343
|
requirements:
|
|
338
344
|
- - ">="
|
|
339
345
|
- !ruby/object:Gem::Version
|
|
340
|
-
version: '2.
|
|
346
|
+
version: '2.6'
|
|
341
347
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
342
348
|
requirements:
|
|
343
349
|
- - ">="
|