Class: Dbtools::Converter::Excel2csv_converter
- Inherits:
-
Object
- Object
- Dbtools::Converter::Excel2csv_converter
- Defined in:
- lib/dbtools/converter/excel2csv_converter.rb
Instance Method Summary collapse
-
#initialize(filename) ⇒ Excel2csv_converter
constructor
Initialize the roo excel library.
-
#output(folder) ⇒ Object
Output all sheets in the excel to csv.
-
#sheet2csv(sheet_index) ⇒ Object
Convert an excel sheet to csv, given the index.
Constructor Details
#initialize(filename) ⇒ Excel2csv_converter
Initialize the roo excel library.
10 11 12 13 |
# File 'lib/dbtools/converter/excel2csv_converter.rb', line 10 def initialize(filename) @excel = Roo::Spreadsheet.open(filename) @excel_filename = File.basename(filename) end |
Instance Method Details
#output(folder) ⇒ Object
Output all sheets in the excel to csv. Set the sheetname as the filename.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/dbtools/converter/excel2csv_converter.rb', line 16 def output(folder) FileUtils.mkdir_p(folder) h = Hash.new @excel.each_with_pagename do |sheetname, sheet| filename = @excel_filename.gsub(/[^0-9a-zA-Z_-]/,'_') + "_" + sheetname.gsub(/[^0-9a-zA-Z_-]/,'_') + ".csv" path = File.join(folder, filename) output = File.open(path, "w") do |f| f.write(sheet.to_csv) end h[sheetname] = path end @excel.close return h end |
#sheet2csv(sheet_index) ⇒ Object
Convert an excel sheet to csv, given the index.
32 33 34 35 36 37 38 |
# File 'lib/dbtools/converter/excel2csv_converter.rb', line 32 def sheet2csv(sheet_index) begin @excel.sheet(sheet_index).to_csv rescue ArgumentError => e puts e. end end |