ooxml_parser 0.36.1 → 0.37.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d47597307e327f07be8d801416ae5cdfd75b7f02b3202fc5ba8cca94dcb67b5b
4
- data.tar.gz: 69ebb6f5328aa6e5124258237c62aa03942bec04708915241ebc961ca331a187
3
+ metadata.gz: 87456a8bc9e65bfdc392bc011d85d926898a72fd1fd93b9df816ff9c17829e23
4
+ data.tar.gz: a1c31e373fe50d84c20a94921efa541b6aec385efb9985def44853c394a8f814
5
5
  SHA512:
6
- metadata.gz: 77709ddfb3e40812d73e3cf071f671ec88bbbf9a234efad1d197003aa703e1f7e42232902b32dc9fefbaf6653747dfad70e1948d9991d6b61821f80cf8ef1e51
7
- data.tar.gz: 28efb15b174c9d646a192b0ce84cac2f1cbe9e77afc17de890f67f09ba3dd27ee51e1b2427f272ed77d6feb8f185860de81cb38cd4ddcd5b1c436d6e70e23439
6
+ metadata.gz: bc5b0d1c069bd862ee61ee2043abe88e3862f509d12e3c5cdb1a3aabb6e40742ae4f16410911fd3a34d8babd21aa94c15bd4a072456b482f00e127a7c371a15d
7
+ data.tar.gz: 81cde9b66505385865c6a9c236e7c3bd49b7bb5265f260e8821675bff6e0df06c5b12fe190ba79d09f7c23c6158162d69963ba022a9746c7c67ed4880f991114
@@ -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.36.1'
7
+ STRING = '0.37.0'
8
8
  end
9
9
  end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OoxmlParser
4
+ # Class for parsing <dataField> tag
5
+ class DataField < OOXMLDocumentObject
6
+ # @return [Integer] index of the base field for the ShowDataAs calculation
7
+ attr_accessor :base_field
8
+ # @return [Integer] index of the base item for the ShowDataAs calculation
9
+ attr_accessor :base_item
10
+ # @return [Integer] index of the field in the pivotCacheRecords
11
+ attr_accessor :field
12
+ # @return [String] name of the data field
13
+ attr_reader :name
14
+ # @return [Integer] index of the number format applied to data field
15
+ attr_accessor :number_format_id
16
+ # @return [ExtensionList] list of extensions
17
+ attr_accessor :extension_list
18
+
19
+ # Parse `<dataField>` tag
20
+ # # @param [Nokogiri::XML:Element] node with DataField data
21
+ # @return [DataField]
22
+ def parse(node)
23
+ node.attributes.each do |key, value|
24
+ case key
25
+ when 'baseField'
26
+ @base_field = value.value.to_i
27
+ when 'baseItem'
28
+ @base_item = value.value.to_i
29
+ when 'fld'
30
+ @field = value.value.to_i
31
+ when 'name'
32
+ @name = value.value.to_s
33
+ when 'numFmtId'
34
+ @number_format_id = value.value.to_i
35
+ end
36
+ end
37
+
38
+ node.xpath('*').each do |node_child|
39
+ case node_child.name
40
+ when 'extLst'
41
+ @extension_list = ExtensionList.new(parent: self).parse(node_child)
42
+ end
43
+ end
44
+ self
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'data_fields/data_field'
4
+
5
+ module OoxmlParser
6
+ # Class for parsing <dataFields> tag
7
+ class DataFields < OOXMLDocumentObject
8
+ # @return [Integer] count
9
+ attr_reader :count
10
+ # @return [Array<DataField>] list of DataField object
11
+ attr_reader :data_field
12
+
13
+ def initialize(parent: nil)
14
+ @data_field = []
15
+ super
16
+ end
17
+
18
+ # @return [DataField] accessor
19
+ def [](key)
20
+ @data_field[key]
21
+ end
22
+
23
+ # Parse `<dataFields>` tag
24
+ # @param [Nokogiri::XML:Element] node with dataFields data
25
+ # @return [DataFields]
26
+ def parse(node)
27
+ node.attributes.each do |key, value|
28
+ case key
29
+ when 'count'
30
+ @count = value.value.to_i
31
+ end
32
+ end
33
+
34
+ node.xpath('*').each do |node_child|
35
+ case node_child.name
36
+ when 'dataField'
37
+ @data_field << DataField.new(parent: self).parse(node_child)
38
+ end
39
+ end
40
+ self
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OoxmlParser
4
+ # Class for parsing <pageField> tag
5
+ class PageField < OOXMLDocumentObject
6
+ # @return [Integer] index of the field
7
+ attr_accessor :field
8
+ # @return [Integer] index of the OLAP hierarchy
9
+ attr_reader :hierarchy
10
+
11
+ # Parse `<pageField>` tag
12
+ # # @param [Nokogiri::XML:Element] node with PageField data
13
+ # @return [PageField]
14
+ def parse(node)
15
+ node.attributes.each do |key, value|
16
+ case key
17
+ when 'fld'
18
+ @field = value.value.to_i
19
+ when 'hier'
20
+ @hierarchy = value.value.to_i
21
+ end
22
+ end
23
+ self
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'page_fields/page_field'
4
+
5
+ module OoxmlParser
6
+ # Class for parsing <pageFields> tag
7
+ class PageFields < OOXMLDocumentObject
8
+ # @return [Integer] count
9
+ attr_reader :count
10
+ # @return [Array<PageField>] list of PageField object
11
+ attr_reader :page_field
12
+
13
+ def initialize(parent: nil)
14
+ @page_field = []
15
+ super
16
+ end
17
+
18
+ # @return [PageField] accessor
19
+ def [](key)
20
+ @page_field[key]
21
+ end
22
+
23
+ # Parse `<pageFields>` tag
24
+ # @param [Nokogiri::XML:Element] node with pageFields data
25
+ # @return [PageFields]
26
+ def parse(node)
27
+ node.attributes.each do |key, value|
28
+ case key
29
+ when 'count'
30
+ @count = value.value.to_i
31
+ end
32
+ end
33
+
34
+ node.xpath('*').each do |node_child|
35
+ case node_child.name
36
+ when 'pageField'
37
+ @page_field << PageField.new(parent: self).parse(node_child)
38
+ end
39
+ end
40
+ self
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OoxmlParser
4
+ # Class for parsing <field> tag
5
+ class Field < OOXMLDocumentObject
6
+ # @return [Integer] the index to a pivotField item value
7
+ attr_accessor :field_index
8
+
9
+ # Parse `<field>` tag
10
+ # # @param [Nokogiri::XML:Element] node with Field data
11
+ # @return [Field]
12
+ def parse(node)
13
+ node.attributes.each do |key, value|
14
+ case key
15
+ when 'x'
16
+ @field_index = value.value.to_i
17
+ end
18
+ end
19
+ self
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'row_fields/field'
4
+
5
+ module OoxmlParser
6
+ # Class for parsing <rowFields> tag
7
+ class RowFields < OOXMLDocumentObject
8
+ # @return [Integer] count
9
+ attr_reader :count
10
+ # @return [Array<Field>] list of Field object
11
+ attr_reader :fields
12
+
13
+ def initialize(parent: nil)
14
+ @fields = []
15
+ super
16
+ end
17
+
18
+ # @return [Field] accessor
19
+ def [](key)
20
+ @fields[key]
21
+ end
22
+
23
+ # Parse `<rowFields>` tag
24
+ # @param [Nokogiri::XML:Element] node with rowFields data
25
+ # @return [RowFields]
26
+ def parse(node)
27
+ node.attributes.each do |key, value|
28
+ case key
29
+ when 'count'
30
+ @count = value.value.to_i
31
+ end
32
+ end
33
+
34
+ node.xpath('*').each do |node_child|
35
+ case node_child.name
36
+ when 'field'
37
+ @fields << Field.new(parent: self).parse(node_child)
38
+ end
39
+ end
40
+ self
41
+ end
42
+ end
43
+ end
@@ -4,6 +4,9 @@ require_relative 'pivot_table_definition/column_row_items'
4
4
  require_relative 'pivot_table_definition/location'
5
5
  require_relative 'pivot_table_definition/pivot_fields'
6
6
  require_relative 'pivot_table_definition/pivot_table_style_info'
7
+ require_relative 'pivot_table_definition/data_fields'
8
+ require_relative 'pivot_table_definition/page_fields'
9
+ require_relative 'pivot_table_definition/row_fields'
7
10
 
8
11
  module OoxmlParser
9
12
  # Class for parsing <PivotTableDefinition> tag
@@ -50,6 +53,14 @@ module OoxmlParser
50
53
  attr_reader :row_items
51
54
  # @return [PivotTableStyleInfo] style info
52
55
  attr_reader :style_info
56
+ # @return [DataFields] data fields
57
+ attr_reader :data_fields
58
+ # @return [PageFields] page fields
59
+ attr_reader :page_fields
60
+ # @return [RowFields] row fields
61
+ attr_reader :row_fields
62
+ # @return [RowFields] column fields
63
+ attr_reader :column_fields
53
64
 
54
65
  # Parse PivotTableDefinition object
55
66
  # @param [String] file path
@@ -106,6 +117,14 @@ module OoxmlParser
106
117
  @column_items = ColumnRowItems.new(parent: self).parse(node_child)
107
118
  when 'pivotTableStyleInfo'
108
119
  @style_info = PivotTableStyleInfo.new(parent: self).parse(node_child)
120
+ when 'dataFields'
121
+ @data_fields = DataFields.new(parent: self).parse(node_child)
122
+ when 'pageFields'
123
+ @page_fields = PageFields.new(parent: self).parse(node_child)
124
+ when 'rowFields'
125
+ @row_fields = RowFields.new(parent: self).parse(node_child)
126
+ when 'colFields'
127
+ @column_fields = RowFields.new(parent: self).parse(node_child)
109
128
  end
110
129
  end
111
130
  self
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OoxmlParser
4
+ # Class for `x14:dataField` data
5
+ class X14DataField < OOXMLDocumentObject
6
+ # @return [Symbol] pivot show as type
7
+ attr_reader :pivot_show_as
8
+
9
+ # Parse X14DataField data
10
+ # @param [Nokogiri::XML:Element] node with X14DataField data
11
+ # @return [X14Table] value of X14DataField data
12
+ def parse(node)
13
+ node.attributes.each do |key, value|
14
+ case key
15
+ when 'pivotShowAs'
16
+ @pivot_show_as = value.value.to_sym
17
+ end
18
+ end
19
+ self
20
+ end
21
+ end
22
+ end
@@ -4,6 +4,7 @@ require_relative 'extension/data_validations'
4
4
  require_relative 'extension/sparkline_groups'
5
5
  require_relative 'extension/x14_table'
6
6
  require_relative 'extension/conditional_formattings'
7
+ require_relative 'extension/x14_data_field'
7
8
  module OoxmlParser
8
9
  # Class for `ext` data
9
10
  class Extension < OOXMLDocumentObject
@@ -15,6 +16,8 @@ module OoxmlParser
15
16
  attr_accessor :table
16
17
  # @return [SparklineGroups] list of groups
17
18
  attr_reader :sparkline_groups
19
+ # @return [X14DataField] pivot data field in x14 namespace
20
+ attr_accessor :data_field
18
21
 
19
22
  # Parse Extension data
20
23
  # @param [Nokogiri::XML:Element] node with Extension data
@@ -30,6 +33,8 @@ module OoxmlParser
30
33
  @table = X14Table.new(parent: self).parse(column_node)
31
34
  when 'sparklineGroups'
32
35
  @sparkline_groups = SparklineGroups.new(parent: self).parse(column_node)
36
+ when 'dataField'
37
+ @data_field = X14DataField.new(parent: self).parse(column_node)
33
38
  end
34
39
  end
35
40
  self
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.36.1
4
+ version: 0.37.0
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: 2023-05-22 00:00:00.000000000 Z
13
+ date: 2023-06-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
@@ -384,12 +384,18 @@ files:
384
384
  - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition.rb
385
385
  - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/column_row_items.rb
386
386
  - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/column_row_items/column_row_item.rb
387
+ - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/data_fields.rb
388
+ - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/data_fields/data_field.rb
387
389
  - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/location.rb
390
+ - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/page_fields.rb
391
+ - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/page_fields/page_field.rb
388
392
  - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/pivot_fields.rb
389
393
  - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/pivot_fields/pivot_field.rb
390
394
  - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/pivot_fields/pivot_field/items.rb
391
395
  - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/pivot_fields/pivot_field/items/item.rb
392
396
  - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/pivot_table_style_info.rb
397
+ - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/row_fields.rb
398
+ - lib/ooxml_parser/xlsx_parser/workbook/pivot_table_definition/row_fields/field.rb
393
399
  - lib/ooxml_parser/xlsx_parser/workbook/shared_string_table.rb
394
400
  - lib/ooxml_parser/xlsx_parser/workbook/shared_string_table/string_index.rb
395
401
  - lib/ooxml_parser/xlsx_parser/workbook/sheet.rb
@@ -447,6 +453,7 @@ files:
447
453
  - lib/ooxml_parser/xlsx_parser/workbook/worksheet/table_part/extension_list/extension/sparkline_groups/sparkline_group.rb
448
454
  - lib/ooxml_parser/xlsx_parser/workbook/worksheet/table_part/extension_list/extension/sparkline_groups/sparkline_group/sparklines.rb
449
455
  - lib/ooxml_parser/xlsx_parser/workbook/worksheet/table_part/extension_list/extension/sparkline_groups/sparkline_group/sparklines/sparkline.rb
456
+ - lib/ooxml_parser/xlsx_parser/workbook/worksheet/table_part/extension_list/extension/x14_data_field.rb
450
457
  - lib/ooxml_parser/xlsx_parser/workbook/worksheet/table_part/extension_list/extension/x14_table.rb
451
458
  - lib/ooxml_parser/xlsx_parser/workbook/worksheet/table_part/table_columns.rb
452
459
  - lib/ooxml_parser/xlsx_parser/workbook/worksheet/table_part/table_columns/table_column.rb
@@ -487,7 +494,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
487
494
  - !ruby/object:Gem::Version
488
495
  version: '0'
489
496
  requirements: []
490
- rubygems_version: 3.4.13
497
+ rubygems_version: 3.4.14
491
498
  signing_key:
492
499
  specification_version: 4
493
500
  summary: OoxmlParser Gem