class IOStreams::Xlsx::Reader
Public Class Methods
file(file_name, original_file_name: file_name, &block)
click to toggle source
Convert a xlsx, or xlsm file into CSV format.
# File lib/io_streams/xlsx/reader.rb, line 7 def self.file(file_name, original_file_name: file_name, &block) # Stream into a temp file as csv Utils.temp_file_name("iostreams_csv") do |temp_file_name| ::File.open(temp_file_name, "wb") { |io| new(file_name).each { |lines| io << lines.to_csv } } ::File.open(temp_file_name, "rb", &block) end end
new(file_name)
click to toggle source
# File lib/io_streams/xlsx/reader.rb, line 15 def initialize(file_name) begin require "creek" unless defined?(Creek::Book) rescue LoadError => e raise(LoadError, "Please install the 'creek' gem for xlsx streaming support. #{e.message}") end workbook = Creek::Book.new(file_name, check_file_extension: false) @worksheet = workbook.sheets[0] end
Public Instance Methods
each() { |values| ... }
click to toggle source
Returns each [Array] row from the spreadsheet
# File lib/io_streams/xlsx/reader.rb, line 27 def each @worksheet.rows.each { |row| yield row.values } end