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
loadis 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
indexin the providedsheet_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 |
#save(path) ⇒ Object
Saves the current modifications to the provided path.
116 117 118 119 120 121 122 |
# File 'lib/xcellus.rb', line 116 def save(path) unless path.kind_of? String raise ArgumentError, 'save expects a string path' end Xcellus::_save(@handle, path) end |