最近经常要替客户做一些二次开发,其中要涉及到数据间的转换,这是客户就会发来一个Excel文件,其中记录着数据间的关系,比如:001代表经理等,而我将这些数据转成其它的形式,如:php的array形式或放到一个数据库表中等等。
Ruby则是我处理这类事的利器,它内置了CSV的操作,可以轻松处理表格数据,以前,我经常将客户发给我的Excel另存为CSV,然后处理,我非常喜欢CSV类库读取文件的语法,感觉它非常的优美,当然,Ruby类库的语法都很舒服,写Ruby这是享受。
CSV.open("code.csv","r") do |row|
#process each csv row
end
直到一个客户,它的数据转换信息很多,在一个Excel中,不同的转换内容放在不同的Sheet中,我要将sheet一个个另存为csv,然后处理?No,于是我想还是找一个处理Excel的类库,由于我比较熟悉Java,找到了JXL类库。并通过JRuby调用JXL完成转换。代码如下:
require 'java'
require 'jar/jxl.jar'
def jxl
Java::Jxl
end
import jxl.Workbook
import jxl.Sheet
import jxl.Cell
cities=[]
workbook=Workbook.getWorkbook(java.io.File.new("Customer_Desc.xls"))
sheet=workbook.getSheet(0)
rownum=sheet.getRows
0.upto(rownum-1) do |i|
#process each row
cells=sheet.getRow(i)
cells.each{|cell|
#process each cell
}
end
workbook.close
真是不舒服,比起CSV类库的写法,这太丑了,于是我对JXL进行了封装,使其尽量和CSV类库操作相一致,现在封装效果如下:
Excel.open("Customer_Desc.xls") do |wb|
wb.each{|sheet|
sheet.each{|row|
#process with each row
}
}
wb.current_sheet.each{|row|
#process with each row
}
wb.sheet(sheetnum or sheetname).each{|row|
#process with each row
}
end
由于我只用到了Excel的读取,就没有将写入Excel做封装,对Cell的处理,也仅仅是通过getContent函数把它变成字符串,没有办法处理超链接等特殊的格式,不过对我而言,够用就好
。
分享到:
相关推荐
本文介绍了如何用JRuby开发Web Service。用JRuby开发Web Service,需要安装ActionWebService。安装完毕之后便可以开始调用及部署了。
jruby是一个ruby的解析器,可将ruby解析为java文件,jruby作为ruby解析器时刻调用java代码
用python读取由ruby/jruby生成的yml数据
本文介绍了JRuby的安装与配置。JRuby的安装需要JRuby以及JDK,本文使用的版本分别是JRuby 1.1.2以及Java 1.6。至于JRuby配置,文章主要介绍了测试JRuby安装的方法。
jruby是从官网上downLoad的,可以在ruby程序中调用Java类库,也可以在Java程序中调用ruby类库,两者使用都相当方便,需要的可以下载尝试。
jruby安装包 和 jruby的lib库 JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。Rails彻底加快及简化了Web应用的开发,不过它让...
jruby-src-1.0.zip
jruby-1.3.1.jar包 解决org.jruby.exceptions.JumpException 等报错
jruby-complete-1.7.19.jar,java版本的ruby解析器
org.jruby.rar
jruby-bin-1.3.1.zip 用于jruby语言研发的必要工具
JRuby window X64 开发软件
jruby与java使用开发,听说jruby能是swing的调用变为更简单
JRuby在Java测试中的应用,使用脚本语言,高效快进行Java程序测试。
This book introduces you to three JRuby deployment strategies that give you the performance and scalability you need, while you use a language designed for rapid development. Explore common ...
还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 jruby.jar
jRuby On Rails WEB 2.0
JRuby语言实战技术,java下运用ruby
jruby 1.9.6 win64