ooxl 0.0.1.4.8.2 → 0.0.1.4.8.3

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
  SHA1:
3
- metadata.gz: 3a4151f45d4223facb6e109bef200b1c7d75cc0f
4
- data.tar.gz: 5c788cb54f1a3790bacbee0fe48d2d993113161b
3
+ metadata.gz: 0b6a832c55f4d6416993a46a825374f1bfe1f836
4
+ data.tar.gz: 6523eea889771a54af020a916e7c2da8673337b5
5
5
  SHA512:
6
- metadata.gz: fb21c20769d531dae6b1a2b392314ee7492c5727a6ce81b0bd27b0afa6ff95977d62fa3849b0e6f3062f6dd0d360fd0b51326246dedec37b472cc2eed75a96f4
7
- data.tar.gz: a0c9a9cb796d5d1832e0806179d2d982cca11b5a4d824e04481ea0fc634f84548aba24d94fab006faba1bf8d872412b91e974281293ad42fbf6d0ef371363e6e
6
+ metadata.gz: 27fa7b1b8f123c11220e5562e3ee7322a2207af4daf22d3ef195eb156f53c5dfb2bc4f564b97ec3c1ca8d8791034ea8bd17973464d6e49d5f6fcac3ed9155504
7
+ data.tar.gz: b49e9fb06d3a84eb64e1a95a05ca92b74f42b10f38818ded53552d4acb759d54e8cfb364ee279dd0ee640b7237211f9752fbe61c57df9e09ddd83dcf424ef25b
data/README.md CHANGED
@@ -54,6 +54,9 @@ sheet[0][0].value# short version
54
54
 
55
55
  # Fetch cell value using the short versions
56
56
  ooxl['Test Sheet 1'][0][0].value
57
+
58
+ # Detecting merged cell
59
+ ooxl['Test Sheet 1'].in_merged_cell?('C1') # true/false
57
60
  ```
58
61
 
59
62
  ### Iteration
data/lib/ooxl/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class OOXL
2
- VERSION = "0.0.1.4.8.2"
2
+ VERSION = "0.0.1.4.8.3"
3
3
  end
@@ -74,8 +74,6 @@ class OOXL
74
74
 
75
75
  def rows
76
76
  @rows ||= begin
77
- # TODO: get the value of merged cells
78
- # merged_cells = @xml.xpath('//mergeCells/mergeCell').map { |merged_cell| merged_cell.attributes["ref"].try(:value) }
79
77
  all_rows = @xml.xpath('//sheetData/row').map do |row_node|
80
78
  row = Row.load_from_node(row_node, @shared_strings, styles)
81
79
  yield row if block_given?
@@ -184,6 +182,12 @@ class OOXL
184
182
  self.new(Nokogiri.XML(xml_stream).remove_namespaces!, shared_strings)
185
183
  end
186
184
 
185
+ def in_merged_cell?(cell_id)
186
+ column_letter, column_index = cell_id.partition(/\d+/)
187
+ range = merged_cells_range.find { |column_range, index_range| column_range.cover?(column_letter) && index_range.cover?(column_index) }
188
+ range.present?
189
+ end
190
+
187
191
  private
188
192
  def fetch_row_by_id(row_id)
189
193
  rows.find { |row| row.id == row_id.to_s}
@@ -195,5 +199,15 @@ class OOXL
195
199
  rows[row_index][cell_reference].style_id
196
200
  end
197
201
 
202
+ def merged_cells_range
203
+ @merged_cells ||= @xml.xpath('//mergeCells/mergeCell').map do |merged_cell|
204
+ # <mergeCell ref="Q381:R381"/>
205
+ start_reference, end_reference = merged_cell.attributes["ref"].try(:value).split(':')
206
+
207
+ start_column_letter, start_index = start_reference.partition(/\d+/)
208
+ end_column_letter, end_index = end_reference.partition(/\d+/)
209
+ [(start_column_letter..end_column_letter), (start_index..end_index)]
210
+ end.to_h
211
+ end
198
212
  end
199
213
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ooxl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.4.8.2
4
+ version: 0.0.1.4.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Mones
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-10 00:00:00.000000000 Z
11
+ date: 2016-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport