ruby用WIN32OLE读取excel文件

最近需要用ruby读取excel文件,网友有很多包,但是多少都会出现些问题,而且读取效率也不是很高。后来在论坛上看到有说用WIN32OLE读取excel文章,然后就试了一下。发现效果还不错。但是缺点是无法自动结束excel程序。
所以没回执行完后 杀掉进程即可:system("taskkill /f /im excel.exe")

  require 'win32ole'
  require 'date'
  require 'win32api'

  def excelReader()
  excel = WIN32OLE.new("excel.application")
  excel.visible = false
  filepath="D:\\auto_work\\Book1.xls" #路径用两斜杠
  workbook = excel.workbooks.open(filepath)
  worksheet=workbook.worksheets(1)
  #worksheet=workbook.worksheets("sheet name") 打开表名
  #读取excel文件
  return_data=[]
  config_data=[]
  config_data1=[]
  taix_date=[]
  taix_from=[]
  taix_to=[]
  taix_km=[]
  taix_fee=[]
  taix_reason=[]
  row=3
  13.times do
    #读取单元格数据赋给数组
    config_data << worksheet.range("b#{row}").value.to_s
    row+=1
  end
  row=6
  return_data<<config_data
   8.times do
    #读取单元格数据赋给数组
    config_data1 << worksheet.range("c#{row}").value.to_s
    row+=1
  end
  row=2
  return_data<<config_data1
  while worksheet.range("d#{row}").value
    #读取出租车详细日期
    taix_date << worksheet.range("d#{row}").value.strftime("%Y-%m-%d")
    row+=1
  end
  row=2
  return_data<<taix_date
  while worksheet.range("e#{row}").value
    #读取单元格数据赋给数组
    taix_from << worksheet.range("e#{row}").value.to_s
    row+=1
  end
  row=2
  return_data<<taix_from
  while worksheet.range("f#{row}").value
    #读取单元格数据赋给数组
    taix_to << worksheet.range("f#{row}").value.to_s
    row+=1
  end
  row=2
  return_data<<taix_to
  while worksheet.range("g#{row}").value
    #读取单元格数据赋给数组
    taix_km << worksheet.range("g#{row}").value.to_s
    row+=1
  end
  row=2
  return_data<<taix_km
  while worksheet.range("h#{row}").value
    #读取单元格数据赋给数组
    taix_fee << worksheet.range("h#{row}").value.to_s
    row+=1
  end
  row=2
  return_data<<taix_fee
  while worksheet.range("i#{row}").value
    #读取单元格数据赋给数组
    taix_reason << worksheet.range("i#{row}").value.to_s
    row+=1
  end
  return_data<<taix_reason
  return return_data
  excel.close
  system('taskkill -f -im excel.exe')
  end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值