用Ruby读取Excel文件

操作excel 最好的方式是使用vba进行提供的丰富大量的接口来操作excel ,但是如何使用ruby操作excel?

1.通常做法,既然是微软提供的软件,就需要查阅,微软提供的API了,需要包含win32,在ruby,前加入,require 'win32ole'

例如:

require 'win32ole'

myexcel = WIN32OLE.new("excel.application")

myexcel.visible=true

mywbk = myexcel.Workbooks.Add()

mywst= mywbk.Worksheets(1)

mywst.Range('A1:D1').value =['1','2','3','4']

将['1','2','3','4']写入EXCEL的'A1:D1'区域

2.使用纯ruby 读写excel

@file_task_name ="e:/test.xls"

@fo=File.open(@file_task_name,"r")
# def total_lines
@lines = 0
@fo.each_with_index {|@item,@lines|}
puts @lines+1
@lines= @lines+1
File.open(@file_task_name) do |file|
#file.each_line{|line| puts line}
file.close();

这里我推荐一款,操作excel的第三方工具

1.Parseexcel插件(主要是excel读取)

安装方式:gem install parseexcel

require 'rubygems' require 'spreadsheet/excel'

具体操作检测提供帮助文档

#从命令行输入要打开的excel文件名 workbook = Spreadsheet::Parseexcel.parse"e:/test.xls")#得到第一个表单

worksheet = workbook.worksheet(0) #遍历行

worksheet.each { |row| j=0 i=0 if row != nil #遍历该行非空单元格

row.each { |cell| if cell != nil #取得单元格内容为string类型

contents = cell.to_s('latin1') puts "Row: #{j}

Cell: #{i}> #{contents}"

end i = i+1

}

end

}

2.spreadsheet插件(主要是excel生成写入数据)

安装方式:gem install spreadsheet

require ' parseexcel/parser'

具体操作检测提供帮助文档


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值