ruby用WIN32OLE读取excel文件_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > ruby用WIN32OLE读取excel文件

ruby用WIN32OLE读取excel文件

 2013/8/24 2:00:40  yxchen51  程序员俱乐部  我要评论(0)
  • 摘要:最近需要用ruby读取excel文件,网友有很多包,但是多少都会出现些问题,而且读取效率也不是很高。后来在论坛上看到有说用WIN32OLE读取excel文章,然后就试了一下。发现效果还不错。但是缺点是无法自动结束excel程序。所以没回执行完后杀掉进程即可:system("taskkill/f/imexcel.exe")require'win32ole'require'date'require'win32api'defexcelReader()excel=WIN32OLE.new("excel
  • 标签:excel 文件 Ruby
最近需要用ruby读取excel文件,网友有很多包,但是多少都会出现些问题,而且读取效率也不是很高。后来在论坛上看到有说用WIN32OLE读取excel文章,然后就试了一下。发现效果还不错。但是缺点是无法自动结束excel程序。
所以没回执行完后 杀掉进程即可:system("taskkill /f /im excel.exe")
class="java" name="code">
  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
上一篇: 鲍尔默致员工备忘录:目前是微软转型关键期 下一篇: 没有下一篇了!
发表评论
用户名: 匿名