class XLSXToHTML::SpreadsheetParser
Public Class Methods
parse(xlsx_path, expected_headers = [])
click to toggle source
# File lib/xlsx_to_html/spreadsheet_parser.rb, line 5 def self.parse(xlsx_path, expected_headers = []) @xlsx_path = xlsx_path @headers = expected_headers { headers: headers, rows: rows } end
Private Class Methods
for_each_row(start_row = nil) { |row, index| ... }
click to toggle source
# File lib/xlsx_to_html/spreadsheet_parser.rb, line 40 def for_each_row(start_row = nil) start_row = start_row.nil? ? spreadsheet.first_row : start_row (start_row..spreadsheet.last_row).each do |index| yield spreadsheet.row(index), index end end
headers()
click to toggle source
# File lib/xlsx_to_html/spreadsheet_parser.rb, line 15 def headers without_headers? ? [] : spreadsheet.row(headers_line) end
headers_line()
click to toggle source
# File lib/xlsx_to_html/spreadsheet_parser.rb, line 27 def headers_line return spreadsheet.header_line if without_headers? || !dynamic_headers_row? || dynamic_headers_row? && @headers.empty? for_each_row do |row, index| next unless row == @headers return index end raise XLSXToHTML::ExpectedDataNotFound, @headers end
rows()
click to toggle source
# File lib/xlsx_to_html/spreadsheet_parser.rb, line 19 def rows rows = [] for_each_row(headers_line + 1) do |row| rows << row end rows.reject { |arr| arr.all?(&:nil?) } end
spreadsheet()
click to toggle source
# File lib/xlsx_to_html/spreadsheet_parser.rb, line 47 def spreadsheet Roo::Spreadsheet.open @xlsx_path end