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

利用groovy把表中数据导出成txt或csv

阅读更多
胶水语言就是胶水,写起也挺快的.这个脚本主要是从数据库中把表中的数据导出来生成文件.而不用每次都打开数据库编辑器去手工收集.然后结合强大的脚本(shell,bat)等基本就可以实现定时生成最新数据文本了.

目前这个groovy脚本只要输入sql语句,便会自动去反射表中的字段和类型.
脚本名称:export.groovy
  1. importgroovy.sql.Sql;
  2. try
  3. {
  4. if(this.args.size()<1)
  5. {
  6. println"格式错误!请参照下面的正确格式"
  7. println"export[sql:可以正确执行的sql语句]"
  8. return;
  9. }
  10. }
  11. catch(Exceptione)
  12. {
  13. println"格式错误!请参照下面的正确格式"
  14. println"export[sql:可以正确执行的sql语句]"
  15. return;
  16. }
  17. /*
  18. 连接对象
  19. 可以根据你自己的需要调整
  20. */
  21. sql=Sql.newInstance("jdbc:oracle:thin:@10.220.51.40:1521:ORA10G","用户名","密码","oracle.jdbc.driver.OracleDriver");
  22. /*SQL语句可以根据自己需要调整*/
  23. strSql=this.args[0];
  24. //方法_获取表名
  25. defgetTableName={strSql->
  26. pattern=~"FROM.*"
  27. matcher=strSql.toUpperCase()=~pattern
  28. tableName="";
  29. while(matcher.find()){
  30. tableName=matcher.group()
  31. }
  32. returntableName.split('')[1];
  33. }
  34. //方法判断字符串里面是否有中文
  35. defisChinaese={str->
  36. if(str==null)
  37. return;
  38. for(iin0..str.size()-1)
  39. {
  40. if(str.charAt(i)>127)
  41. {
  42. returntrue;
  43. }
  44. }
  45. returnfalse;
  46. }
  47. deffile_tableName=getTableName(strSql);//表名
  48. defresult_columnCount=0;//列数
  49. defresult_columnName=[];//列名
  50. defresult_columnType=[];//列类型
  51. defresult_rowsData=[];//行数据
  52. defrows_count=0;
  53. //在该脚本的同级目录下生成已表名命名的csv文件
  54. file_csv=newFile("${file_tableName}.txt");
  55. //判断文件是否存在,如果存在写删除
  56. if(file_csv.exists()){
  57. println"在当前目录下发现已经存在${file_tableName},程序已经删除文件"
  58. file_csv.delete()
  59. }
  60. println"准备生成${file_tableName}.csv"
  61. sql.eachRow(strSql,
  62. {
  63. result_columnCount=it.getColumnCount();
  64. println"*********${file_tableName}表结构**********"
  65. println":本次导出共生成${result_columnCount}个字段";
  66. for(iin1..result_columnCount){//不同与java,groovy下标从1开始
  67. printlnit.getColumnName(i)+"|"+it.getColumnTypeName(i);
  68. result_columnName<<it.getColumnName(i);
  69. result_columnType<<it.getColumnTypeName(i);
  70. }
  71. println"*********${file_tableName}表结构**********"
  72. file_csv<<result_columnName.join(",")+System.getProperty("line.separator");
  73. println"开始生成数据,请耐心等待......"
  74. },
  75. {
  76. rows_count++;
  77. result_rowsData=[];//清空对象
  78. for(jin0..result_columnCount-1)
  79. {
  80. if(result_columnType[j]=="VARCHAR2"||result_columnType[j]=="VARCHAR"){//针对VARCHAR类型进行处理,加上"号
  81. Stringstrtemp="";
  82. //先要判断是否含有中文,有中文就不加"号
  83. /*if(isChinaese(it[j]))
  84. {
  85. strtemp=it[j]
  86. }
  87. else
  88. {
  89. strtemp="\""+it[j]+"\"";
  90. }
  91. */
  92. strtemp="\""+it[j]+"\"";
  93. result_rowsData<<strtemp;
  94. }
  95. else//其他类型不做处理
  96. {
  97. result_rowsData<<it[j];
  98. }
  99. }
  100. file_csv<<result_rowsData.join(",")+System.getProperty("line.separator");
  101. }
  102. );
  103. println"${file_tableName}数据生成完毕(导出数据行数:${rows_count})\n"


然后再给这个groovy脚本写几个对应的shell\bat执行脚本
比如:
文件名:生成基站.bat
  1. groovyexport"select*fromshw.chal_cell_base_info"

如图:



那么当每次都要生成最新数据的时候,直接去双击这些bat文件即可.或者你直接把这些bat配置到操作系统的执行任务当中去即可.


分享到:
评论

相关推荐

    hbase导出csv,文本,html文件

    标题“hbase导出csv,文本,html文件”指的是从HBase中导出数据并转换为常见的文本格式,如CSV、文本和HTML,以便于进一步的分析或报告生成。这个过程通常涉及到多个步骤,包括HBase与Hive的交互,以及数据的迁移和...

    数据导出器:简单的Csv数据导出Groovy脚本

    标题中的“数据导出器:简单的Csv数据导出Groovy脚本”指的是一个使用Groovy编程语言编写的脚本,其主要功能是将数据导出为CSV(逗号分隔值)格式。CSV是一种常见的数据交换格式,适用于各种应用程序,如数据分析、...

    grails导出csv

    在Grails框架中,CSV(Comma Separated Values)文件是一种常见的数据导出格式,它以逗号分隔每一列数据,便于数据交换和处理。本篇将详细讲解如何在Grails应用中实现CSV文件的导出功能。 一、CSV简介 CSV文件是一...

    soapUI读写execel和CSV文档范例

    然而,当涉及到数据驱动测试时,我们可能需要从外部文件(如Excel或CSV)导入数据,或者将测试结果导出到这些文件。这就是我们要探讨的主题。 1. **读取Excel文档**: 使用Java的Apache POI库可以方便地实现这一...

    java操作CSV的官方jar包

    在Java编程中,处理CSV(Comma Separated Values)文件是一项常见的任务,特别是在数据导入、导出或数据分析的场景中。CSV文件格式简单且广泛使用,因为它允许在各种应用程序之间轻松交换数据。Java中虽然没有内置的...

    ireport(jasperreports-5.6+groovy-2.1.3)

    `ireport`的设计界面让用户无需编程即可设计出美观的报表,它支持多种数据源,如数据库、CSV文件等,并能导出为PDF、HTML、Excel等多种格式。 在`ireport`中,用户可以通过拖放操作创建表格、图表、文本框等元素,...

    java+ireport报表开发实例

    Java+iReport报表开发实例是Java应用中常见的数据可视化方式,尤其在企业级应用中,报表系统扮演着至关重要的角色,用于展示、分析和打印数据。本文将深入探讨如何使用Java结合iReport工具来创建和展示复杂的报表。 ...

    ireport导出使用的包

    它基于JasperReports库,使得用户可以通过拖拽的方式创建报表布局,支持各种数据源(例如数据库、XML、CSV等),并提供了丰富的样式和计算功能。通过预览模式,开发者可以在设计时实时查看报表效果,极大地提高了...

    JasperReports 报表开发 java.rar

    教程中可能涵盖了如何创建报表模板、配置数据源、编写Java代码来填充和导出报表等内容,以及如何解决开发过程中遇到的问题。多看书,多实践,才能更好地掌握JasperReports,从而在你的项目中构建出高效、灵活的报表...

    Android studio画曲线

    当用户需要导出数据时,读取这些数据并以CSV或Excel格式保存到本地或者通过邮件附件发送。这里的关键是将TimeSeries中的数据序列化为适合持久化的格式。 在SensorMonitor-master这个项目中,可能包含了完整的示例...

    jasperreports4.5.0的工具包

    mondrian-3.1.1.12687.jar包含Mondrian的实现,用于数据分析和报表中的透视表功能。 4. **Apache POI**:POI是Apache软件基金会的一个项目,用于读写Microsoft Office格式的文件,如Excel。在JasperReports中,POI...

    SoapUI Pro Indroduction

    - **数据导出**:支持将测试结果导出为XML或CSV格式文件。 #### 测试步骤介绍 - **REST测试请求(Rest Test Request)**:发送HTTP请求并获取响应。 - **Groovy脚本(Groovy Script)**:利用Groovy或JavaScript编写...

    Android中生成excel用到的jar文件.rar

    在Android开发中,有时我们需要为用户提供能够导出数据到Excel的功能。这通常涉及到与Java的交互,因为Android原生并不支持直接生成Excel文件。这里提到的"Android中生成excel用到的jar文件.rar"是一个包含关键库的...

    JasperReports 3.0.1_quick_reference

    JasperReports支持JavaScript和Groovy作为脚本语言,可以用来扩展报表功能,如动态计算、数据过滤等。 综上,"JasperReports 3.0.1_quickreference.html" 文件应包含上述知识点的详细解释和示例,便于开发者快速...

    grails-export:grails 出口

    Grails 出口插件是针对 Grails 框架的一个实用工具,主要用于方便地将数据导出到各种常见的文件格式,如 CSV、Excel 或 PDF。这个插件源自 SVN 仓库的一个原始版本,并在后续的发展中被分叉出来进行独立维护和更新,...

    katalon.doc

    点击"Export"按钮,从下拉菜单中选择你希望的编程语言,如Java、Python或Groovy等,导出后的代码可以直接在相应的IDE中进行编辑。 总的来说,Katalon Recorder 是一个功能强大的自动化测试工具,它的易用性和灵活性...

    iReport教程+各类型实例

    6. **自定义脚本**:利用JavaScript或Groovy脚本实现自定义逻辑,如计算、过滤等。 五、进阶功能 除了基本操作,iReport还支持自定义样式表(CSS)、脚本语言、参数传递、导出选项等功能。例如,你可以通过参数控制...

    ireport+jasperreport API

    3. 表达式语言:掌握JasperReport内置的JasperReports Expression Language(JEXL)或Groovy表达式,用于计算和过滤数据。 三、iReport与JasperReport的协同使用 iReport&JasperReport配置使用.pdf指导了如何将...

    Jasperreport应用小结

    - **数据源设定**: JRXML文件中可以配置SQL查询或其他类型的数据源,如Java集合或CSV文件。 - **编译JRXML**:将JRXML文件编译成JasperReport二进制文件(.jasper),这一步由JasperCompileManager完成。 - **...

Global site tag (gtag.js) - Google Analytics