Ruby解析xls和xlsx文件

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

desc "转换excel到csv"
task :covert_excel_to_csv => :environment do
  # 读取所有的xls和xlsx文件 
  excel_file_list = FileList.new("#{Rails.root}/manager_datas/apk_reviews/*/*/*")
  #把excel文件转换为csv文件
  excel_file_list.each_with_index do |file, index|
    #验证文件格式
    file_extend_name = file.split('.').last
    case file_extend_name
    when "xls"
      xls = true
    when "xlsx"
      xlsx = true
    else
      xls = xlsx = false
    end

    #根据不同格式分别处理,并转换为csv文件
    if xls
      csv_file = Excel.new(file)
      file_name = file.split('.').first
      puts "正在读取excel文件 ->", file.inspect
      puts "读取excel文件完毕,正在转换生成对应的csv文件,请稍等..."
      csv_file.to_csv("#{file_name}.csv")
      puts "正在生成第#{index+1}个csv文件完毕!"
    elsif xlsx
      csv_file = Excelx.new(file)
      file_name = file.split('.').first
      puts "正在读取excel文件 ->", file.inspect
      puts "读取excel文件完毕,正在转换生成对应的csv文件,请稍等..."
      csv_file.to_csv("#{file_name}.csv")
      puts "正在生成第#{index+1}个csv文件完毕!"
    end

  end#excel_file_list.each
  puts " ==== 生成csv文件全部完毕!开始导入操作! =====>"
end