Class: Xcellus::Instance
- Inherits:
-
Object
- Object
- Xcellus::Instance
- Defined in:
- lib/xcellus.rb
Overview
Instance represents a XLSX file, and exposes methods to manipulate data on the file
Instance Method Summary collapse
-
#append(data) ⇒ Object
Appends sheets and rows to the loaded file.
-
#close ⇒ Object
Close ensures that all resources allocated when ‘load` is called are freed.
-
#find_in_column(sheet_name, column_index, value) ⇒ Object
Searches a given sheet for a provided value in a specific column.
-
#initialize(handle) ⇒ Instance
constructor
Internal: Creates a new instance with the provided handle.
-
#replace_row(sheet_name, index, value) ⇒ Object
Replaces the row at ‘index` in the provided `sheet_name`.
-
#save(path) ⇒ Object
Saves the current modifications to the provided path.
Constructor Details
#initialize(handle) ⇒ Instance
Internal: Creates a new instance with the provided handle
69 70 71 |
# File 'lib/xcellus.rb', line 69 def initialize(handle) @handle = handle end |
Instance Method Details
#append(data) ⇒ Object
Appends sheets and rows to the loaded file. This method expects the same structure of Xcellus::transform, with the difference that it creates (when necessary) sheets, and appends data to them.
127 128 129 130 131 132 |
# File 'lib/xcellus.rb', line 127 def append(data) unless data.kind_of? Array raise ArgumentError, 'Xcellus.append only accepts Arrays' end Xcellus::_append(@handle, data.to_json) end |
#close ⇒ Object
Close ensures that all resources allocated when ‘load` is called are freed. This method MUST be called after you’re done handling data.
111 112 113 |
# File 'lib/xcellus.rb', line 111 def close Xcellus::_close(@handle) end |
#find_in_column(sheet_name, column_index, value) ⇒ Object
Searches a given sheet for a provided value in a specific column. sheet_name: Name of the sheet to lookup for ‘value`. Immediately returns
-1 when the sheet cannot be found.
column_index: Index of the column to lookup for the provided value. value: Value to lookup for. Automatically converted and compared
as an String.
79 80 81 82 83 84 85 86 87 |
# File 'lib/xcellus.rb', line 79 def find_in_column(sheet_name, column_index, value) unless sheet_name.kind_of? String raise ArgumentError, 'Invalid sheet name' end unless column_index.kind_of? Integer raise ArgumentError, 'Invalid column index' end Xcellus::_find_in_column(@handle, sheet_name, column_index, value.to_s) end |
#replace_row(sheet_name, index, value) ⇒ Object
Replaces the row at ‘index` in the provided `sheet_name`. sheet_name: Name of the sheet in which the row must be replaced. Throws
a StandardException when a sheet with the provided name
cannot be found.
index: Index of the row to be replaced. value: An array with values to be replaced. Passing ‘nil` prevents
values of the cell in the same index from being changed.
96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/xcellus.rb', line 96 def replace_row(sheet_name, index, value) unless sheet_name.kind_of? String raise ArgumentError, 'Invalid sheet name' end unless index.kind_of? Integer raise ArgumentError, 'Invalid column index' end unless value.kind_of? Array raise ArgumentError, 'Invalid value: should be an array' end Xcellus::_replace_row(@handle, sheet_name, value.to_json, index) end |