ooxl 0.0.1.4.8 → 0.0.1.4.8.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.
- checksums.yaml +4 -4
- data/lib/ooxl/util.rb +4 -0
- data/lib/ooxl/version.rb +1 -1
- data/lib/ooxl/xl_objects/sheet.rb +30 -5
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d66790c4d94aecd9aad507457b9f6aafc34a38db
|
4
|
+
data.tar.gz: a33065fe180455e33279e874b8443949feea4dc3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a53c7e2d02e19a9206515270de32eeb48c8dc389368a5a6749b6ecd076215ed8822066c5d87d385b4b96b701aae7eaa3e90b359983e298db7660777645f47f7
|
7
|
+
data.tar.gz: 13cb6d5720b8dc3136e3166cfe687217f60ae4b5b1c8e8a73c453423e533ec21de9f900c90cd251a74704fabf92a37a2c548691ab56425984120ae6ec0ed8a2e
|
data/lib/ooxl/util.rb
CHANGED
data/lib/ooxl/version.rb
CHANGED
@@ -12,6 +12,7 @@ class OOXL
|
|
12
12
|
@comments = {}
|
13
13
|
@defined_names = {}
|
14
14
|
@styles = []
|
15
|
+
@loaded_cache = {}
|
15
16
|
end
|
16
17
|
|
17
18
|
def code_name
|
@@ -47,22 +48,46 @@ class OOXL
|
|
47
48
|
end
|
48
49
|
end
|
49
50
|
|
50
|
-
def row(index)
|
51
|
-
rows
|
51
|
+
def row(index, stream: false)
|
52
|
+
if @loaded_cache[:rows] || !stream
|
53
|
+
rows.find { |row| row.id == index.to_s}
|
54
|
+
else
|
55
|
+
found_row = nil
|
56
|
+
rows do |row|
|
57
|
+
if row.id == index.to_s
|
58
|
+
found_row = row
|
59
|
+
break
|
60
|
+
end
|
61
|
+
end
|
62
|
+
found_row
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# test mode
|
67
|
+
def cells_by_column(column_letter)
|
68
|
+
columns = []
|
69
|
+
rows.each do |row|
|
70
|
+
columns << row.cells.find { |cell| to_column_letter(cell.id) == column_letter}
|
71
|
+
end
|
72
|
+
columns
|
52
73
|
end
|
53
74
|
|
54
75
|
def rows
|
55
76
|
@rows ||= begin
|
56
77
|
# TODO: get the value of merged cells
|
57
78
|
# merged_cells = @xml.xpath('//mergeCells/mergeCell').map { |merged_cell| merged_cell.attributes["ref"].try(:value) }
|
58
|
-
@xml.xpath('//sheetData/row').map do |row_node|
|
59
|
-
Row.load_from_node(row_node, @shared_strings, styles)
|
79
|
+
all_rows = @xml.xpath('//sheetData/row').map do |row_node|
|
80
|
+
row = Row.load_from_node(row_node, @shared_strings, styles)
|
81
|
+
yield row if block_given?
|
82
|
+
row
|
60
83
|
end
|
84
|
+
@loaded_cache[:rows] = true
|
85
|
+
all_rows
|
61
86
|
end
|
62
87
|
end
|
63
88
|
|
64
89
|
def each
|
65
|
-
rows
|
90
|
+
rows { |row| yield row }
|
66
91
|
end
|
67
92
|
|
68
93
|
def font(cell_reference)
|