rubyexcel 0.0.8 → 0.0.9
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.
- data/lib/README.md +4 -4
- data/lib/rubyexcel/data.rb +2 -2
- data/lib/rubyexcel/rubyexcel_components.rb +24 -0
- data/lib/rubyexcel/section.rb +1 -1
- data/lib/rubyexcel.rb +8 -8
- metadata +1 -1
data/lib/README.md
CHANGED
@@ -3,7 +3,7 @@ RubyExcel
|
|
3
3
|
|
4
4
|
Designed for Ruby on Windows with MS Excel
|
5
5
|
|
6
|
-
Please feel free to log any bugs you find
|
6
|
+
Please feel free to log any bugs you find [here](https://github.com/VirtuosoJoel/RubyExcel/issues "Bug Tracker").
|
7
7
|
|
8
8
|
Introduction
|
9
9
|
------------
|
@@ -21,8 +21,8 @@ Key design features taken from Excel:
|
|
21
21
|
|
22
22
|
Typical usage:
|
23
23
|
|
24
|
-
1. Extract a HTML Table or CSV File into 2D Array ( normally with Nokogiri / Mechanize )
|
25
|
-
2. Organise and interpret data with RubyExcel
|
24
|
+
1. Extract a HTML Table or CSV File into 2D Array ( normally with Nokogiri / Mechanize ).
|
25
|
+
2. Organise and interpret data with RubyExcel.
|
26
26
|
3. Output results into a file.
|
27
27
|
|
28
28
|
About
|
@@ -566,7 +566,7 @@ s.parent.save_excel( 'Output.xlsx' )
|
|
566
566
|
Todo List
|
567
567
|
=========
|
568
568
|
|
569
|
-
- Write TestCases (
|
569
|
+
- Write TestCases for most methods (Hopefully that'll stop me releasing broken gem versions)
|
570
570
|
|
571
571
|
- Find bugs and extirpate them.
|
572
572
|
|
data/lib/rubyexcel/data.rb
CHANGED
@@ -65,7 +65,7 @@ require_relative 'address.rb'
|
|
65
65
|
end.all?
|
66
66
|
end
|
67
67
|
end
|
68
|
-
|
68
|
+
calc_dimensions
|
69
69
|
end
|
70
70
|
|
71
71
|
#
|
@@ -219,7 +219,7 @@ require_relative 'address.rb'
|
|
219
219
|
# @return [self]
|
220
220
|
#
|
221
221
|
|
222
|
-
def filter( header )
|
222
|
+
def filter!( header )
|
223
223
|
hrows = sheet.header_rows
|
224
224
|
idx = index_by_header( header )
|
225
225
|
@data = @data.select.with_index { |row, i| hrows > i || yield( row[ idx -1 ] ) }
|
@@ -20,6 +20,30 @@ module RubyExcel
|
|
20
20
|
[ 'Type2', 'QY2', '213', 1, 99.99 ],
|
21
21
|
[ 'Type1', 'QT4', '123', 2, 104 ]
|
22
22
|
]
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.sample_hash
|
27
|
+
|
28
|
+
{
|
29
|
+
Part1: {
|
30
|
+
Type1: {
|
31
|
+
SubType1: 1, SubType2: 2, SubType3: 3
|
32
|
+
},
|
33
|
+
Type2: {
|
34
|
+
SubType1: 4, SubType2: 5, SubType3: 6
|
35
|
+
}
|
36
|
+
},
|
37
|
+
Part2: {
|
38
|
+
Type1: {
|
39
|
+
SubType1: 1, SubType2: 2, SubType3: 3
|
40
|
+
},
|
41
|
+
Type2: {
|
42
|
+
SubType1: 4, SubType2: 5, SubType3: 6
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
23
47
|
end
|
24
48
|
|
25
49
|
#
|
data/lib/rubyexcel/section.rb
CHANGED
@@ -162,7 +162,7 @@ module RubyExcel
|
|
162
162
|
|
163
163
|
def each_cell_without_headers
|
164
164
|
return to_enum( :each_cell_without_headers ) unless block_given?
|
165
|
-
|
165
|
+
each_address_without_headers { |addr| yield Element.new( sheet, addr ) }
|
166
166
|
end
|
167
167
|
alias each_cell_wh each_cell_without_headers
|
168
168
|
|
data/lib/rubyexcel.rb
CHANGED
@@ -47,7 +47,7 @@ module RubyExcel
|
|
47
47
|
case other
|
48
48
|
when Workbook ; other.each { |sht| sht.workbook = self; @sheets << sht }
|
49
49
|
when Sheet ; @sheets << other; other.workbook = self
|
50
|
-
when Array ;
|
50
|
+
when Array ; load( other )
|
51
51
|
else ; fail TypeError, "Unsupported Type: #{ other.class }"
|
52
52
|
end
|
53
53
|
self
|
@@ -312,14 +312,14 @@ module RubyExcel
|
|
312
312
|
# @example Filter to 'Part': 'Type1' and 'Type3', with Qty greater than 1
|
313
313
|
# s.advanced_filter!( 'Part', :=~, /Type[13]/, 'Qty', :>, 1 )
|
314
314
|
#
|
315
|
-
# @example Filter to 'Part': 'Type1', with '
|
316
|
-
# s.advanced_filter!( 'Part', :==, 'Type1', '
|
315
|
+
# @example Filter to 'Part': 'Type1', with 'Ref1' containing 'X'
|
316
|
+
# s.advanced_filter!( 'Part', :==, 'Type1', 'Ref1', :include?, 'X' )
|
317
317
|
#
|
318
|
-
#
|
319
|
-
#
|
320
|
-
#
|
321
|
-
#
|
322
|
-
#
|
318
|
+
# @param [String] header a header to search under
|
319
|
+
# @param [Symbol] comparison_operator the operator to compare with
|
320
|
+
# @param [Object] search_criteria the value to filter by
|
321
|
+
# @raise [ArgumentError] 'Number of arguments must be a multiple of 3'
|
322
|
+
# @raise [ArgumentError] 'Operator must be a symbol'
|
323
323
|
#
|
324
324
|
|
325
325
|
def advanced_filter!( *args )
|