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