class BaseImportExcel < ApplicationImport
  Error = Class.new(StandardError)

  attr_reader :sheet

  def initialize(path)
    raise Error, '不支持的文件格式' unless path.end_with?('.xls') || path.end_with?('.xlsx')

    begin
      @sheet = Roo::Spreadsheet.open(path).sheet(0)
    rescue Exception => ex
      logger ex.message
      ex.backtrace.each(&method(:logger))
      raise Error, '打开文件失败'
    end

    check_sheet_valid!
  end

  def read_each(&block);end

  private

  def check_sheet_valid!;end

  def raise_import_error(message)
    raise Error, message
  end
end