ooxml_parser 0.12.1 → 0.14.1

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 (19) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ooxml_parser/common_parser/common_data/color/color_helper.rb +1 -1
  3. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_properties.rb +5 -0
  4. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragraph_run/run_properties/shade.rb +2 -2
  5. data/lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/paragraph_stlye_ref.rb +27 -0
  6. data/lib/ooxml_parser/common_parser/common_data/table/properties/table_position.rb +5 -5
  7. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph.rb +1 -7
  8. data/lib/ooxml_parser/docx_parser/docx_data/document_structure/docx_paragraph/indents.rb +1 -1
  9. data/lib/ooxml_parser/version.rb +1 -1
  10. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook.rb +12 -0
  11. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/defined_name.rb +33 -0
  12. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet.rb +5 -0
  13. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension.rb +5 -0
  14. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/data_validations.rb +47 -0
  15. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/data_validations/data_validation.rb +88 -0
  16. 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
  17. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_header_footer.rb +64 -0
  18. data/lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_header_footer/header_footer_child.rb +56 -0
  19. metadata +10 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 70f22490ee51df42e0fcdab9b647c19ee44adcef3ad22a2af2ee68de346b8fcd
4
- data.tar.gz: e7faaec854030bb9b6b435401c78d50f1421bbf12eac175c8772eba608b92ed6
3
+ metadata.gz: 5bfd9bf403c49920d072ee03ff67f63a80384b427ba11b13e1284aaa7736ec00
4
+ data.tar.gz: 7c10534ec85dd9d710759aa243684e37e8bdde011290095d565caed696966330
5
5
  SHA512:
6
- metadata.gz: b3c1dadbed29dddce8f84bb2df7c09b50fa117608f66fb5f4895259618d7659e772cf7617de7e5ea7979d914800d589eff122a6022670daeaad73de1817b013c
7
- data.tar.gz: bb7a942fbc164badb3b066bd5fea520f972b8821929f10027f3f4be9e91161cbe7d11f4f5c519559da51280db12d7aa9f487dd31a24179e2bb8846b167e25cae
6
+ metadata.gz: 4c108a26a2a99b55af6e98206979d08a28b8ea05241b463b0a6efa2820798d1b4a4a7efb4d194e2980361569d8c6b10ba0d21bec41a3fbc6cb59c706367f8ac0
7
+ data.tar.gz: c4ca66efcd1b8d313fa2e4370f552531e2f7b9af1fa792c5e77b1a8e1566c655efff505ada827869fa92dfda06171e00e0edb1702f754a522a91d3cd460dd44d
@@ -8,7 +8,7 @@ module OoxmlParser
8
8
  def parse_hex_string(hex_string)
9
9
  return self if %w[auto null].include?(hex_string)
10
10
 
11
- char_array = hex_string.split(//)
11
+ char_array = hex_string.chars
12
12
  case char_array.length
13
13
  when 3
14
14
  @red = char_array[0].hex
@@ -3,6 +3,7 @@
3
3
  require_relative 'paragrpah_properties/numbering_properties'
4
4
  require_relative 'paragrpah_properties/paragraph_borders'
5
5
  require_relative 'paragrpah_properties/paragraph_spacing'
6
+ require_relative 'paragrpah_properties/paragraph_stlye_ref'
6
7
  require_relative 'paragrpah_properties/spacing'
7
8
  require_relative 'paragrpah_properties/tabs'
8
9
  module OoxmlParser
@@ -17,6 +18,8 @@ module OoxmlParser
17
18
  attr_accessor :run_properties
18
19
  # @return [Borders] borders of paragraph
19
20
  attr_accessor :paragraph_borders
21
+ # @return [ParagraphStyleRef] Referenced Paragraph Style
22
+ attr_accessor :paragraph_style_ref
20
23
  # @return [True, False] Specifies that the paragraph
21
24
  # (or at least part of it) should be rendered on
22
25
  # the same page as the next paragraph when possible
@@ -84,6 +87,8 @@ module OoxmlParser
84
87
  @run_properties = RunProperties.new(parent: self).parse(node_child)
85
88
  when 'pBdr'
86
89
  @paragraph_borders = ParagraphBorders.new(parent: self).parse(node_child)
90
+ when 'pStyle'
91
+ @paragraph_style_ref = ParagraphStyleRef.new(parent: self).parse(node_child)
87
92
  when 'keepNext'
88
93
  @keep_next = true
89
94
  when 'sectPr'
@@ -23,8 +23,8 @@ module OoxmlParser
23
23
  # @return [String] text representation
24
24
  def to_s
25
25
  "Value: `#{value}`, "\
26
- "Color: `#{color}`, "\
27
- "Fill: `#{fill}`"
26
+ "Color: `#{color}`, "\
27
+ "Fill: `#{fill}`"
28
28
  end
29
29
 
30
30
  # Parse Shade
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OoxmlParser
4
+ # Class for parsing `pStyle` tags
5
+ class ParagraphStyleRef < OOXMLDocumentObject
6
+ # @return [Integer] value of ParagraphStyleRef
7
+ attr_reader :value
8
+
9
+ # Parse ParagraphStyleRef object
10
+ # @param node [Nokogiri::XML:Element] node to parse
11
+ # @return [ParagraphStyleRef] result of parsing
12
+ def parse(node)
13
+ node.attributes.each do |key, value|
14
+ case key
15
+ when 'val'
16
+ @value = value.value.to_s
17
+ end
18
+ end
19
+ self
20
+ end
21
+
22
+ # @return [ParagraphStyle] which was referenced
23
+ def referenced_style
24
+ root_object.document_style_by_id(value)
25
+ end
26
+ end
27
+ end
@@ -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
- "right: #{right}, "\
13
- "top: #{top}, "\
14
- "bottom #{bottom}, "\
15
- "position x: #{position_x}, "\
16
- "position y: #{position_y}"
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
@@ -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.section_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
@@ -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
- "right indent: #{@right_indent}, hanging indent: #{@hanging_indent}"
29
+ "right indent: #{@right_indent}, hanging indent: #{@hanging_indent}"
30
30
  end
31
31
 
32
32
  # Parse Indents
@@ -4,6 +4,6 @@ module OoxmlParser
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
6
  # [String] Version of Gem
7
- STRING = '0.12.1'
7
+ STRING = '0.14.1'
8
8
  end
9
9
  end
@@ -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
@@ -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
@@ -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
@@ -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,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
@@ -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,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,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
@@ -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
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.12.1
4
+ version: 0.14.1
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-02-17 00:00:00.000000000 Z
13
+ date: 2021-08-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
@@ -321,6 +321,7 @@ files:
321
321
  - lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/numbering_properties.rb
322
322
  - lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/paragraph_borders.rb
323
323
  - lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/paragraph_spacing.rb
324
+ - lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/paragraph_stlye_ref.rb
324
325
  - lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/spacing.rb
325
326
  - lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/spacing/line_spacing.rb
326
327
  - lib/ooxml_parser/common_parser/common_data/paragraph/paragrpah_properties/tabs.rb
@@ -485,6 +486,7 @@ files:
485
486
  - lib/ooxml_parser/version.rb
486
487
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook.rb
487
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
488
490
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/pivot_cache.rb
489
491
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/pivot_cache/pivot_cache_definition.rb
490
492
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/pivot_cache/pivot_cache_definition/cache_fields.rb
@@ -534,6 +536,9 @@ files:
534
536
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/autofilter/filter_column/custom_filters/custom_filter.rb
535
537
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list.rb
536
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
537
542
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/sparkline_groups.rb
538
543
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/sparkline_groups/sparkline_group.rb
539
544
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/table_part/extension_list/extension/x14_table.rb
@@ -544,6 +549,8 @@ files:
544
549
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_column_properties.rb
545
550
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_drawing.rb
546
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
547
554
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row.rb
548
555
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell.rb
549
556
  - lib/ooxml_parser/xlsx_parser/xlsx_data/view_model/workbook/worksheet/xlsx_row/xlsx_cell/formula.rb
@@ -572,7 +579,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
572
579
  - !ruby/object:Gem::Version
573
580
  version: '0'
574
581
  requirements: []
575
- rubygems_version: 3.2.9
582
+ rubygems_version: 3.2.22
576
583
  signing_key:
577
584
  specification_version: 4
578
585
  summary: OoxmlParser Gem