ooxml_parser 0.12.2 → 0.14.2
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/lib/ooxml_parser/common_parser/common_data/alternate_content/chart/chart.rb +6 -6
- data/lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_blip/file_reference.rb +2 -0
- data/lib/ooxml_parser/common_parser/common_data/color/color_helper.rb +1 -1
- data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/shade.rb +2 -2
- data/lib/ooxml_parser/common_parser/common_data/table/properties/table_position.rb +5 -5
- data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/indents.rb +1 -1
- data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph.rb +1 -7
- data/lib/ooxml_parser/version.rb +1 -1
- data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/defined_name.rb +33 -0
- data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/data_validations/data_validation/data_validation_formula.rb +22 -0
- data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/data_validations/data_validation.rb +88 -0
- data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/data_validations.rb +47 -0
- data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension.rb +5 -0
- data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_header_footer/header_footer_child.rb +56 -0
- data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_header_footer.rb +64 -0
- data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet.rb +5 -0
- data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook.rb +12 -0
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c95b99d5e8d76d3aa01ae9ede02b290bc97e8959dc61fbf33d50e51d52ec9ebc
|
4
|
+
data.tar.gz: 053d4bd9fcd951f1e9507adc5dd1e281227e9c1643f8fdfc0ecdefea5462bab1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63c6f712cb033e723c63b44067d08323408cf6fc13472a0af57425899e74630f6389bc6ea77b4bf849d2745c04378f444c4c7932dfaafc94b7108bbeaeadf3e8
|
7
|
+
data.tar.gz: 86d3dad08a7d0838b4a11cfaf4329b6806b786ee7f791aadf03ea68efcd8e1b94901e4a8b81420412868882b855a606b3144aa28a27d92c01c11e4ed3196881d
|
@@ -53,12 +53,12 @@ module OoxmlParser
|
|
53
53
|
@grouping = chart_props_node_child.attribute('val').value.to_sym
|
54
54
|
when 'ser'
|
55
55
|
@series << Series.new(parent: self).parse(chart_props_node_child)
|
56
|
-
case @type
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
56
|
+
val = case @type
|
57
|
+
when :point, :bubble
|
58
|
+
chart_props_node_child.xpath('c:yVal')[0]
|
59
|
+
else
|
60
|
+
chart_props_node_child.xpath('c:val')[0]
|
61
|
+
end
|
62
62
|
next unless val
|
63
63
|
next if val.xpath('c:numRef').empty?
|
64
64
|
|
@@ -9,11 +9,11 @@ module OoxmlParser
|
|
9
9
|
# @return [String] result of convert of object to string
|
10
10
|
def to_s
|
11
11
|
"Table position left: #{left}, "\
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
"right: #{right}, "\
|
13
|
+
"top: #{top}, "\
|
14
|
+
"bottom #{bottom}, "\
|
15
|
+
"position x: #{position_x}, "\
|
16
|
+
"position y: #{position_y}"
|
17
17
|
end
|
18
18
|
|
19
19
|
# Parse TablePosition object
|
@@ -26,7 +26,7 @@ module OoxmlParser
|
|
26
26
|
# @return [String] result of conversion
|
27
27
|
def to_s
|
28
28
|
"first line indent: #{@first_line_indent}, left indent: #{@left_indent}, "\
|
29
|
-
|
29
|
+
"right indent: #{@right_indent}, hanging indent: #{@hanging_indent}"
|
30
30
|
end
|
31
31
|
|
32
32
|
# Parse Indents
|
@@ -84,7 +84,7 @@ module OoxmlParser
|
|
84
84
|
|
85
85
|
# @return [True, false] if structure contain any user data
|
86
86
|
def with_data?
|
87
|
-
!nonempty_runs.empty? || paragraph_properties
|
87
|
+
!nonempty_runs.empty? || paragraph_properties&.section_properties
|
88
88
|
end
|
89
89
|
|
90
90
|
# Compare this object to other
|
@@ -269,11 +269,5 @@ module OoxmlParser
|
|
269
269
|
nil
|
270
270
|
end
|
271
271
|
deprecate :sdt, 'nonempty_runs[i]', 2020, 1
|
272
|
-
|
273
|
-
# @return [OoxmlParser::FrameProperties] Return frame properties
|
274
|
-
def frame_properties
|
275
|
-
paragraph_properties.frame_properties
|
276
|
-
end
|
277
|
-
deprecate :frame_properties, 'paragraph_properties.frame_properties', 2020, 1
|
278
272
|
end
|
279
273
|
end
|
data/lib/ooxml_parser/version.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OoxmlParser
|
4
|
+
# Class for parsing <definedName> tag
|
5
|
+
class DefinedName < OOXMLDocumentObject
|
6
|
+
# @return [String] Ranges to which defined name refers
|
7
|
+
attr_reader :range
|
8
|
+
# @return [String] Name
|
9
|
+
attr_reader :name
|
10
|
+
# @return [String] Id of sheet
|
11
|
+
attr_reader :local_sheet_id
|
12
|
+
# @return [Symbol] Specifies whether defined name is hidden
|
13
|
+
attr_reader :hidden
|
14
|
+
|
15
|
+
# Parse Defined Name data
|
16
|
+
# @param [Nokogiri::XML:Element] node with DefinedName data
|
17
|
+
# @return [DefinedName] value of DefinedName
|
18
|
+
def parse(node)
|
19
|
+
@range = node.text
|
20
|
+
node.attributes.each do |key, value|
|
21
|
+
case key
|
22
|
+
when 'name'
|
23
|
+
@name = value.value.to_s
|
24
|
+
when 'localSheetId'
|
25
|
+
@local_sheet_id = value.value.to_i
|
26
|
+
when 'hidden'
|
27
|
+
@hidden = attribute_enabled?(value)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
self
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OoxmlParser
|
4
|
+
# Class for `x14:formula1` or `x14:formula2` data
|
5
|
+
class DataValidationFormula < OOXMLDocumentObject
|
6
|
+
# @return [Formula] value of formula
|
7
|
+
attr_reader :formula
|
8
|
+
|
9
|
+
# Parse DataValidationFormula data
|
10
|
+
# @param [Nokogiri::XML:Element] node with DataValidationFormula data
|
11
|
+
# @return [DataValidationFormula] value of DataValidationFormula data
|
12
|
+
def parse(node)
|
13
|
+
node.xpath('*').each do |node_child|
|
14
|
+
case node_child.name
|
15
|
+
when 'f'
|
16
|
+
@formula = Formula.new(parent: self).parse(node_child)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
self
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'data_validation/data_validation_formula'
|
4
|
+
module OoxmlParser
|
5
|
+
# Class for `dataValidation` data
|
6
|
+
class DataValidation < OOXMLDocumentObject
|
7
|
+
# @return [Boolean] should blank entries be valid
|
8
|
+
attr_reader :allow_blank
|
9
|
+
# @return [String] Specifies the message text of the error alert
|
10
|
+
attr_reader :error
|
11
|
+
# @return [Symbol] Type of error
|
12
|
+
attr_reader :error_style
|
13
|
+
# @return [String] The text of the title bar of the error alert
|
14
|
+
attr_reader :error_title
|
15
|
+
# @return [DataValidationFormula] first formula of data validation
|
16
|
+
attr_reader :formula1
|
17
|
+
# @return [DataValidationFormula] second formula of data validation
|
18
|
+
attr_reader :formula2
|
19
|
+
# @return [Symbol] Input Method Editor (IME) mode
|
20
|
+
attr_reader :ime_mode
|
21
|
+
# @return [Symbol] Relational operator used with this data validation
|
22
|
+
attr_reader :operator
|
23
|
+
# @return [String] Message text of the input prompt
|
24
|
+
attr_reader :prompt
|
25
|
+
# @return [String] Text of the title bar of the input prompt
|
26
|
+
attr_reader :prompt_title
|
27
|
+
# @return [String] Ranges to which data validation is applied
|
28
|
+
attr_reader :reference_sequence
|
29
|
+
# @return [Symbol] Specifies whether to display the drop-down combo box
|
30
|
+
attr_reader :show_dropdown
|
31
|
+
# @return [Symbol] Specifies whether to display the input prompt
|
32
|
+
attr_reader :show_input_message
|
33
|
+
# @return [Symbol] Specifies whether to display error alert message
|
34
|
+
attr_reader :show_error_message
|
35
|
+
# @return [Symbol] Type of validation
|
36
|
+
attr_reader :type
|
37
|
+
# @return [String] UID of validation
|
38
|
+
attr_reader :uid
|
39
|
+
|
40
|
+
# Parse DataValidation data
|
41
|
+
# @param [Nokogiri::XML:Element] node with DataValidation data
|
42
|
+
# @return [DataValidation] value of DataValidation data
|
43
|
+
def parse(node)
|
44
|
+
node.attributes.each do |key, value|
|
45
|
+
case key
|
46
|
+
when 'allowBlank'
|
47
|
+
@allow_blank = attribute_enabled?(value)
|
48
|
+
when 'error'
|
49
|
+
@error = value.value.to_s
|
50
|
+
when 'errorStyle'
|
51
|
+
@error_style = value.value.to_sym
|
52
|
+
when 'errorTitle'
|
53
|
+
@error_title = value.value.to_s
|
54
|
+
when 'imeMode'
|
55
|
+
@ime_mode = value.value.to_sym
|
56
|
+
when 'operator'
|
57
|
+
@operator = value.value.to_sym
|
58
|
+
when 'type'
|
59
|
+
@type = value.value.to_sym
|
60
|
+
when 'prompt'
|
61
|
+
@prompt = value.value.to_s
|
62
|
+
when 'promptTitle'
|
63
|
+
@prompt_title = value.value.to_s
|
64
|
+
when 'showDropDown'
|
65
|
+
@show_dropdown = attribute_enabled?(value)
|
66
|
+
when 'showInputMessage'
|
67
|
+
@show_input_message = attribute_enabled?(value)
|
68
|
+
when 'showErrorMessage'
|
69
|
+
@show_error_message = attribute_enabled?(value)
|
70
|
+
when 'uid'
|
71
|
+
@uid = value.value.to_s
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
node.xpath('*').each do |node_child|
|
76
|
+
case node_child.name
|
77
|
+
when 'formula1'
|
78
|
+
@formula1 = DataValidationFormula.new(parent: self).parse(node_child)
|
79
|
+
when 'formula2'
|
80
|
+
@formula2 = DataValidationFormula.new(parent: self).parse(node_child)
|
81
|
+
when 'sqref'
|
82
|
+
@reference_sequence = node_child.text
|
83
|
+
end
|
84
|
+
end
|
85
|
+
self
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'data_validations/data_validation'
|
4
|
+
|
5
|
+
module OoxmlParser
|
6
|
+
# Class for `dataValidations` data
|
7
|
+
class DataValidations < OOXMLDocumentObject
|
8
|
+
# @return [Integer] count of validations
|
9
|
+
attr_reader :count
|
10
|
+
# @return [Array<DataValidation>] list of data validations
|
11
|
+
attr_reader :data_validations
|
12
|
+
# @return [Boolean] is prompts disabled
|
13
|
+
attr_reader :disable_prompts
|
14
|
+
|
15
|
+
def initialize(parent: nil)
|
16
|
+
@data_validations = []
|
17
|
+
super
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [SparklineGroup] accessor
|
21
|
+
def [](key)
|
22
|
+
data_validations[key]
|
23
|
+
end
|
24
|
+
|
25
|
+
# Parse DataValidations data
|
26
|
+
# @param [Nokogiri::XML:Element] node with DataValidations data
|
27
|
+
# @return [DataValidations] value of DataValidations data
|
28
|
+
def parse(node)
|
29
|
+
node.attributes.each do |key, value|
|
30
|
+
case key
|
31
|
+
when 'count'
|
32
|
+
@count = value.value.to_i
|
33
|
+
when 'disablePrompts'
|
34
|
+
@disable_prompts = attribute_enabled?(value)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
node.xpath('*').each do |node_child|
|
39
|
+
case node_child.name
|
40
|
+
when 'dataValidation'
|
41
|
+
@data_validations << DataValidation.new(parent: self).parse(node_child)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
self
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -1,10 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative 'extension/data_validations'
|
3
4
|
require_relative 'extension/sparkline_groups'
|
4
5
|
require_relative 'extension/x14_table'
|
5
6
|
module OoxmlParser
|
6
7
|
# Class for `ext` data
|
7
8
|
class Extension < OOXMLDocumentObject
|
9
|
+
# @return [DataValidations] list of data validations
|
10
|
+
attr_accessor :data_validations
|
8
11
|
# @return [X14Table] table data in x14 namespace
|
9
12
|
attr_accessor :table
|
10
13
|
# @return [SparklineGroups] list of groups
|
@@ -16,6 +19,8 @@ module OoxmlParser
|
|
16
19
|
def parse(node)
|
17
20
|
node.xpath('*').each do |column_node|
|
18
21
|
case column_node.name
|
22
|
+
when 'dataValidations'
|
23
|
+
@data_validations = DataValidations.new(parent: self).parse(column_node)
|
19
24
|
when 'table'
|
20
25
|
@table = X14Table.new(parent: self).parse(column_node)
|
21
26
|
when 'sparklineGroups'
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module OoxmlParser
|
4
|
+
# Class for parsing header or footer
|
5
|
+
class HeaderFooterChild < OOXMLDocumentObject
|
6
|
+
# @return [Symbol] type of header
|
7
|
+
attr_reader :type
|
8
|
+
# @return [String] raw text of header
|
9
|
+
attr_reader :raw_string
|
10
|
+
|
11
|
+
def initialize(type: nil, raw_string: nil, parent: nil)
|
12
|
+
@type = type
|
13
|
+
@raw_string = raw_string
|
14
|
+
super(parent: parent)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Parse HeaderFooterChild data
|
18
|
+
# @param node [Nokogiri::XML:Element] node to parse
|
19
|
+
# @return [HeaderFooterChild] result of parsing
|
20
|
+
def parse(node)
|
21
|
+
@raw_string = node.text
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [String] right part of header
|
26
|
+
def right
|
27
|
+
return @right if @right
|
28
|
+
|
29
|
+
right = @raw_string.match(/&R(.+)/)
|
30
|
+
return nil unless right
|
31
|
+
|
32
|
+
@right = right[1]
|
33
|
+
end
|
34
|
+
|
35
|
+
# @return [String] center part of header
|
36
|
+
def center
|
37
|
+
return @center if @center
|
38
|
+
|
39
|
+
center = @raw_string.split('&R').first.match(/&C(.+)/)
|
40
|
+
return nil unless center
|
41
|
+
|
42
|
+
@center = center[1]
|
43
|
+
end
|
44
|
+
|
45
|
+
# @return [String] left part of header
|
46
|
+
def left
|
47
|
+
return @left if @left
|
48
|
+
|
49
|
+
left = @raw_string.gsub("&R#{right}", '')
|
50
|
+
left = left.gsub("&C#{center}", '')
|
51
|
+
return nil if left == ''
|
52
|
+
|
53
|
+
left.gsub('&L', '')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_header_footer.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'xlsx_header_footer/header_footer_child'
|
4
|
+
module OoxmlParser
|
5
|
+
# Class for parsing <headerFooter> tag
|
6
|
+
class XlsxHeaderFooter < OOXMLDocumentObject
|
7
|
+
# @return [Symbol] Specifies whether to align header with margins
|
8
|
+
attr_reader :align_with_margins
|
9
|
+
# @return [Symbol] Specifies whether first header is different
|
10
|
+
attr_reader :different_first
|
11
|
+
# @return [Symbol] Specifies whether odd and even headers are different
|
12
|
+
attr_reader :different_odd_even
|
13
|
+
# @return [Symbol] Specifies whether to scale header with document
|
14
|
+
attr_reader :scale_with_document
|
15
|
+
# @return [String] odd header
|
16
|
+
attr_reader :odd_header
|
17
|
+
# @return [String] odd footer
|
18
|
+
attr_reader :odd_footer
|
19
|
+
# @return [String] even header
|
20
|
+
attr_reader :even_header
|
21
|
+
# @return [String] even footer
|
22
|
+
attr_reader :even_footer
|
23
|
+
# @return [String] first header
|
24
|
+
attr_reader :first_header
|
25
|
+
# @return [String] first footer
|
26
|
+
attr_reader :first_footer
|
27
|
+
|
28
|
+
# Parse Header Footer data
|
29
|
+
# @param node [Nokogiri::XML:Element] node to parse
|
30
|
+
# @return [XlsxHeaderFooter] result of parsing
|
31
|
+
def parse(node)
|
32
|
+
node.attributes.each do |key, value|
|
33
|
+
case key
|
34
|
+
when 'alignWithMargins'
|
35
|
+
@align_with_margins = attribute_enabled?(value)
|
36
|
+
when 'differentFirst'
|
37
|
+
@different_first = attribute_enabled?(value)
|
38
|
+
when 'differentOddEven'
|
39
|
+
@different_odd_even = attribute_enabled?(value)
|
40
|
+
when 'scaleWithDoc'
|
41
|
+
@scale_with_document = attribute_enabled?(value)
|
42
|
+
end
|
43
|
+
|
44
|
+
node.xpath('*').each do |node_child|
|
45
|
+
case node_child.name
|
46
|
+
when 'oddHeader'
|
47
|
+
@odd_header = HeaderFooterChild.new(parent: parent, type: odd_header).parse(node_child)
|
48
|
+
when 'oddFooter'
|
49
|
+
@odd_footer = HeaderFooterChild.new(parent: parent, type: odd_footer).parse(node_child)
|
50
|
+
when 'evenHeader'
|
51
|
+
@even_header = HeaderFooterChild.new(parent: parent, type: even_header).parse(node_child)
|
52
|
+
when 'evenFooter'
|
53
|
+
@even_footer = HeaderFooterChild.new(parent: parent, type: even_footer).parse(node_child)
|
54
|
+
when 'firstHeader'
|
55
|
+
@first_header = HeaderFooterChild.new(parent: parent, type: first_header).parse(node_child)
|
56
|
+
when 'firstFooter'
|
57
|
+
@first_footer = HeaderFooterChild.new(parent: parent, type: first_footer).parse(node_child)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
self
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -10,6 +10,7 @@ require_relative 'worksheet/worksheet_helper'
|
|
10
10
|
require_relative 'worksheet/xlsx_column_properties'
|
11
11
|
require_relative 'worksheet/xlsx_drawing'
|
12
12
|
require_relative 'worksheet/xlsx_row'
|
13
|
+
require_relative 'worksheet/xlsx_header_footer'
|
13
14
|
module OoxmlParser
|
14
15
|
# Properties of worksheet
|
15
16
|
class Worksheet < OOXMLDocumentObject
|
@@ -28,6 +29,8 @@ module OoxmlParser
|
|
28
29
|
attr_reader :page_setup
|
29
30
|
# @return [ExtensionList] list of extensions
|
30
31
|
attr_accessor :extension_list
|
32
|
+
# @return [XlsxHeaderFooter] header and footer
|
33
|
+
attr_reader :header_footer
|
31
34
|
|
32
35
|
def initialize(parent: nil)
|
33
36
|
@columns = []
|
@@ -124,6 +127,8 @@ module OoxmlParser
|
|
124
127
|
@page_setup = PageSetup.new(parent: self).parse(worksheet_node_child)
|
125
128
|
when 'extLst'
|
126
129
|
@extension_list = ExtensionList.new(parent: self).parse(worksheet_node_child)
|
130
|
+
when 'headerFooter'
|
131
|
+
@header_footer = XlsxHeaderFooter.new(parent: self).parse(worksheet_node_child)
|
127
132
|
end
|
128
133
|
end
|
129
134
|
parse_comments
|
@@ -3,6 +3,7 @@
|
|
3
3
|
require_relative 'workbook/chartsheet'
|
4
4
|
require_relative 'workbook/pivot_cache'
|
5
5
|
require_relative 'workbook/pivot_table_definition'
|
6
|
+
require_relative 'workbook/defined_name'
|
6
7
|
require_relative 'workbook/shared_string_table'
|
7
8
|
require_relative 'workbook/style_sheet'
|
8
9
|
require_relative 'workbook/worksheet'
|
@@ -24,11 +25,14 @@ module OoxmlParser
|
|
24
25
|
attr_accessor :pivot_caches
|
25
26
|
# @return [Array<PivotTableDefintion>] list of pivot table defitions
|
26
27
|
attr_accessor :pivot_table_definitions
|
28
|
+
# @return [Array<DefinedName>] list of defined names
|
29
|
+
attr_reader :defined_names
|
27
30
|
|
28
31
|
def initialize(params = {})
|
29
32
|
@worksheets = []
|
30
33
|
@pivot_caches = []
|
31
34
|
@pivot_table_definitions = []
|
35
|
+
@defined_names = []
|
32
36
|
super
|
33
37
|
end
|
34
38
|
|
@@ -125,6 +129,7 @@ module OoxmlParser
|
|
125
129
|
end
|
126
130
|
parse_pivot_cache
|
127
131
|
parse_pivot_table
|
132
|
+
parse_defined_names
|
128
133
|
OOXMLDocumentObject.xmls_stack.pop
|
129
134
|
self
|
130
135
|
end
|
@@ -149,5 +154,12 @@ module OoxmlParser
|
|
149
154
|
@pivot_table_definitions << PivotTableDefinition.new(parent: self).parse(file.part_name)
|
150
155
|
end
|
151
156
|
end
|
157
|
+
|
158
|
+
# Perform parsing of defined names
|
159
|
+
def parse_defined_names
|
160
|
+
@doc.xpath('xmlns:workbook/xmlns:definedNames/xmlns:definedName').each do |defined_name|
|
161
|
+
@defined_names << DefinedName.new(parent: self).parse(defined_name)
|
162
|
+
end
|
163
|
+
end
|
152
164
|
end
|
153
165
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ooxml_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ONLYOFFICE
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-
|
13
|
+
date: 2021-09-03 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: nokogiri
|
@@ -486,6 +486,7 @@ files:
|
|
486
486
|
- lib/ooxml_parser/version.rb
|
487
487
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook.rb
|
488
488
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/chartsheet.rb
|
489
|
+
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/defined_name.rb
|
489
490
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/pivot_cache.rb
|
490
491
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/pivot_cache/pivot_cache_definition.rb
|
491
492
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/pivot_cache/pivot_cache_definition/cache_fields.rb
|
@@ -535,6 +536,9 @@ files:
|
|
535
536
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/autofilter/filter_column/custom_filters/custom_filter.rb
|
536
537
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list.rb
|
537
538
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension.rb
|
539
|
+
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/data_validations.rb
|
540
|
+
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/data_validations/data_validation.rb
|
541
|
+
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/data_validations/data_validation/data_validation_formula.rb
|
538
542
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/sparkline_groups.rb
|
539
543
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/sparkline_groups/sparkline_group.rb
|
540
544
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/x14_table.rb
|
@@ -545,6 +549,8 @@ files:
|
|
545
549
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_column_properties.rb
|
546
550
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing.rb
|
547
551
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing/xlsx_drawing_position_parameters.rb
|
552
|
+
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_header_footer.rb
|
553
|
+
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_header_footer/header_footer_child.rb
|
548
554
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row.rb
|
549
555
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell.rb
|
550
556
|
- lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/formula.rb
|
@@ -573,7 +579,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
573
579
|
- !ruby/object:Gem::Version
|
574
580
|
version: '0'
|
575
581
|
requirements: []
|
576
|
-
rubygems_version: 3.2.
|
582
|
+
rubygems_version: 3.2.26
|
577
583
|
signing_key:
|
578
584
|
specification_version: 4
|
579
585
|
summary: OoxmlParser Gem
|