`
nnnnon
  • 浏览: 150971 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用jruby操作excel

    博客分类:
  • RORs
阅读更多

一、下载jruby二进制安装包,解压到相应的目录下,并将其bin目录添加到系统 的PATH变量中,则完成了安装;

二、安装java,完成安装后创建系统变量JAVA_HOME,把java的安装目录设为其值;

三、在dos窗口中运行jirb_swing,出现相应的界面,那么你的jruby就成功安装了;

四、下载jxl.jar,放到某一个目录下,并在系统的CLASSPATH变量中把它添加到其中;

五、现在就可以操作excel了,下面是一个简单的实例:

 

require "java"
include_class "jxl.Workbook"
include_class "jxl.write.Label"
include_class "jxl.write.WritableSheet"
include_class "jxl.write.WritableWorkbook"

file=java.io.File.new("D:\\test.xls")
book=Workbook.createWorkbook(file)
sheet=book.createSheet("表格1",0)
label=Label.new(0,0,"世界,你好!")
sheet.addCell(label)
book.write
book.close

 

这样,一个简单的操作excel的程序就写出来了。

 

当然你也可以用ruby的win32ole包,但是要复杂的多,如下一例:

 

 

require 'win32ole'
excel = WIN32OLE::new('excel.Application')
workbook = excel.Workbooks.Open('E:\RubyApp\bmk.xls')
worksheet = workbook.Worksheets(1) #get hold of the first worksheet
worksheet.Select  #bring it to the front -need sometimes to run macros, not for working with a worksheet from ruby
#excel['Visible'] = true #make visible, set to false to make invisible again. Don't need it to be visible for script to work
#value1=worksheet.Range('a12')['Value']  #get value of single cell
#puts value1
#data = worksheet.Range('a1:c12')['Value'] #read into 2D array
#data.each do |data1|
    #data1.each do |data2|
        #puts data2
      #end
#end
line = '1'
while worksheet.Range("c#{line}")['Value']
   line.succ!
end #line now holds row number of first empty row
puts line

#i=3
#puts worksheet.cells(i-1,1).text[8,16].to_i+1
#处理准考证号,让它自动增加
#while i < line.to_i
for i in 3...line.to_i



	   worksheet.cells(i,1).value="00320501"+(worksheet.cells(i-1,1).text[8,15].to_i + 1).to_s
	   worksheet.cells(i,2).value="320501"+(worksheet.cells(i-1,2).text[6,13].to_i + 1).to_s
		   if worksheet.cells(i,7).text.length==18
			  worksheet.cells(i,5).value=worksheet.cells(i,7).text[6,8]
		   else 
			worksheet.cells(i,5).value="19"+worksheet.cells(i,7).text[6,6]
		   end
           
		   worksheet.range("h#{i}").value=worksheet.range("h#{i-1}").value.to_s
		   worksheet.range("i#{i}").value=worksheet.range("i#{i-1}").value.to_s
		   worksheet.range("k#{i}").value=worksheet.range("k#{i-1}").value.to_s
		   worksheet.range("l#{i}").value=worksheet.range("l#{i-1}").value.to_s
		   worksheet.range("o#{i}").value=worksheet.range("o#{i-1}").value.to_s
		   worksheet.range("p#{i}").value=worksheet.range("p#{i-1}").value.to_s
		   worksheet.range("q#{i}").value=worksheet.range("q#{i-1}").value.to_s
		   worksheet.range("r#{i}").value=worksheet.range("r#{i-1}").value.to_s
		   worksheet.range("s#{i}").value=worksheet.range("s#{i-1}").value.to_s
# i=i+1
 end
#worksheet.Range('e2')['Value'] = Time.now.strftime '%d/%m/%Y' #single value
#worksheet.Range('a5:c5')['Value'] = ['Test', '25', 'result']
#value2 = worksheet.range("b6").value
#puts value2
workbook.Close(1)
excel.Quit
excel = nil
GC.start
分享到:
评论

相关推荐

    用JRuby读取Excel文件

    通过JRuby,我们可以调用POI的API,用Ruby代码来操作Excel文件,例如读取数据、修改内容、解析公式等。 以下是使用JRuby和Apache POI读取Excel文件的基本步骤: 1. 首先,需要在项目中引入Apache POI的Java库,这...

    cocoa(xls格式)excel解析源码

    Apache POI是Java平台上的一个库,但也可以通过JRuby或J2ObjC等工具在Objective-C中使用。它不仅支持.xls,还支持.xlsx(Excel 2007及以后版本的OpenXML格式)。如果你打算同时处理多种Excel格式,Apache POI可能是...

    ssh+dwr坚决不冲突的jar

    3. `jruby.jar`:JRuby,是Ruby语言的Java实现,允许在Java项目中使用Ruby代码。 4. `xerces-2.6.2.jar`:Xerces是Apache的一个XML解析器,用于处理XML文档。 5. `poi-3.0.1.jar`:Apache POI,用于读写Microsoft ...

    iReport JAVA报表制作控件

    报表设计过程中可以使用JavaScript进行计算、条件判断等操作,增强了报表的动态性和交互性。此外,还支持JRuby和Groovy等脚本语言。 4. **模板与样式**: 用户可以创建和保存模板,方便重复使用。样式表(CSS)的...

    Spring中文帮助文档

    11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert...

    Spring API

    11.4.2. 使用SimpleJdbcTemplate进行批量操作 11.5. 通过使用SimpleJdbc类简化JDBC操作 11.5.1. 使用SimpleJdbcInsert插入数据 11.5.2. 使用SimpleJdbcInsert来获取自动生成的主键 11.5.3. 指定SimpleJdbcInsert...

    Spring-Reference_zh_CN(Spring中文参考手册)

    11.4. 用Java对象来表达JDBC操作 11.4.1. SqlQuery类 11.4.2. MappingSqlQuery类 11.4.3. SqlUpdate类 11.4.4. StoredProcedure类 11.4.5. SqlFunction类 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate ...

    spring chm文档

    11.4. 用Java对象来表达JDBC操作 11.4.1. SqlQuery类 11.4.2. MappingSqlQuery类 11.4.3. SqlUpdate类 11.4.4. StoredProcedure类 11.4.5. SqlFunction类 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. ...

    Spring 2.0 开发参考手册

    11.4. 用Java对象来表达JDBC操作 11.4.1. SqlQuery类 11.4.2. MappingSqlQuery类 11.4.3. SqlUpdate类 11.4.4. StoredProcedure类 11.4.5. SqlFunction类 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. ...

Global site tag (gtag.js) - Google Analytics