`
xiaoliang330
  • 浏览: 112184 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

groovy 小应用

    博客分类:
  • web
 
阅读更多
昨天使用groovy脚本生成大量的sql,实在是爽!
   现在把经验贴上,以后可以继续使用。

首先说下我的需求:
    给了一个excel,然后要我提取其中的单元格数据,设置到sql语句中,比如是一条更新语句,

update Table set max_value=?,min_value=? where chart_field='?';
其中 =号后面的? 就是要从excel中提取的数据。 现在给定excel中某行的数据:

chart_field                              description  max_value     xx        xx     min_value
HK4_ALLOW_UPSPWR_KVA    xxxx          50000     NA   NA    0
   
给定了6列的数据,而我要取的就是 1,3,6各列的数据,替代=号后面的?,如果数据量非常庞大,这个时候要程序来控制比你手工的效率就大多了,快捷,爽!

看代码:文件名为xxx.groovy

 
import jxl.*;   

Workbook workbook = Workbook.getWorkbook(new File("field_to_have_max_min.xls"));   //导入同级目录下的excel文档,注意后缀貌似暂时只能是.xls

println 'found sheets in workbook: '
workbook.sheetNames.each{print "\t ${it}"}
println ''


handlePoint(workbook)

def handlePoint(workbook){   //主体方法
	def sheet = workbook.getSheet('field_to_have_max_min');  //field_to_have_max_min 为sheet的名字

	def rows = sheet.getRows();
	def cols = sheet.getColumns();

	println "rows: ${rows}, cols: ${cols}"

	def file = new File('field_to_have_max_min.sql')  //创建导出文件
	file.delete()                                                   

	for(row in 2..<rows){
			def chart_field = sheet.getCell(0,row).getContents()
			def max = sheet.getCell(2,row).getContents()
			def min = sheet.getCell(5,row).getContents()
			if (max=='NA') max = 'null'
			if (min=='NA') min = 'null'
			def sql = "update dashboard_data_def set max_value=${max},min_value=${min} where chart_field='${chart_field}';"
				file << "${sql}\r\n"    //导出sql到导出文件
				
			if (chart_field=='HK4_INSTALL_UPSPWR_Z4C_KVA')
			break;
	}
}





这个就可以实现上面的需求了。

要运行这么一个文件,你得下载groovy并安装,我安装的是groovy-binary-1.8.1.zip中的,解压到本地就ok了,然后在环境变量中建一个叫GROOVY_HOME的系统变量,指定groovy的解压目录,然后在path系统变量中添加%GROOVY_HOME%\bin 到其中,当然别忘了;,然后在命令行就可以查看安装成功了没,比如敲入groovy -version  就可以查看版本了。

要运行前面的文件xxx.groovy, 在命令行进入该文件所在目录,敲入 groovy  xxx.groovy 就可以运行了 ,可以在xxx.groovy 文件所在目录看到生成的.sql文件
分享到:
评论

相关推荐

    Groovy_in_Action Groovy经典入门 使用Grails快速开发Web应用

    Groovy_in_Action.pdf Groovy经典入门.pdf 使用Grails快速开发Web应用.pdf 在Eclipse里使用Grails类创建工具.pdf Programming Groovy. Dynamic Productivity for the Java Developer.pdf等一系列groovy资源

    Spock是适合Java和Groovy应用程序的一个测试框架

    Spock 是适合 Java 和 Groovy 应用程序的一个测试框架

    Groovy入门经典.pdf

     与Java代码比较起来,Groovy语言的另一个主要优势是,Groovy代码编写量相对小些。在一般情况下,Java代码过于复杂,难于理解和维护。这是因为Java需要大量的模板文件或者转换代码,而Groovy却不需要。  本书是...

    Groovy应用(基本操作)

    NULL 博文链接:https://laodaobazi.iteye.com/blog/1292563

    精通 Groovy--下一代开发语言

    在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。目前的 Groovy 版本是 1.5.4,在 Java 1.4 和 Java 5 平台上都能使用,也能在 Java 6 上使用。 Groovy 的一个好处是,它的语法...

    Groovy开发web应用入门示例

    NULL 博文链接:https://wallimn.iteye.com/blog/2164800

    apache-groovy-sdk-2.4.11

    本文适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java开发人员。了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的...最重要的是,您将学会如何在日常 Java 应用程序开发中联合使用 Groovy 和 Java 代码。

    Groovy入门经典

    , 与Java代码比较起来,Groovy语言的另一个主要优势是,Groovy代码编写量相对小些。在一般情况下,Java代码过于复杂,难于理解和维护。这是因为Java需要大量的模板文件或者转换代码,而Groovy却不需要。, 本书是有关...

    Groovy PPT

    介绍比较全面的Groovy幻灯片,涉及到Groovy的主要应用范围

    Groovy介绍-入门

    Groovy介绍 什么是Groovy Groovy基本语法 Groovy正则 Java调用Groovy Groovy模板 Groovy应用

    groovy 最新 学习 动态

    groovy 敏捷 开发 动态 语言 急速 web 应用 开发

    apache-groovy-sdk-3.0.9.zip

    本文适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java开发人员。了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的...最重要的是,您将学会如何在日常 Java 应用程序开发中联合使用 Groovy 和 Java 代码

    groovy+spring在web中的应用

    NULL 博文链接:https://zw7534313.iteye.com/blog/488520

    Groovy学习笔记

    Groovy学习笔记,内容如下: 1.概念 2.基本语法 3.字符串 4.集合 5.类和闭包 6.控制语句 7.操作符重载 8.I/O操作 9.高级应用 10.正则表达式

    groovy语言api

    Groovy 是 JVM 的一个替代语言 —...在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。目前的 Groovy 版本是 1.6.3,在 Java 1.4 和 Java 5 平台上都能使用,也能在 Java 6 上使用。

    精通Groovy

    这一节将学习 Groovy 的基础知识:...在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。目前的 Groovy 版本是 1.5.4,在 Java 1.4 和 Java 5 平台上都能使用,也能在 Java 6 上使用

    job-dsl-playground, 使用Jenkins工作DSL调试Groovy脚本的应用程序.zip

    job-dsl-playground, 使用Jenkins工作DSL调试Groovy脚本的应用程序 Jenkins工作DSL游乐场http://job-dsl.herokuapp.com/使用 Jenkins工作DSL插件调试Groovy脚本的应用程序。 允许用户使用DSL创建作业并查看生成的XML...

    groovy-spark-sample:使用 Groovy 的 Spark 示例应用程序

    groovy-spark-样本 使用 Groovy 的 Spark 示例应用程序

Global site tag (gtag.js) - Google Analytics