- 浏览: 112859 次
- 性别:
- 来自: 济南
最新评论
-
anttu:
groovy -
MeltingSnower:
基于ext的?
grails +zkoss -
mymelon:
代码能不能放出来看看啊。
grails +zkoss -
dellsoft:
用的csc365kl 写道请问你的控制层是怎么处理的 是用的g ...
grails +zkoss -
csc365kl:
请问你的控制层是怎么处理的 是用的grails的 还是 zk的 ...
grails +zkoss
用 poi 来导出 excel 文件
在你的 domaincontroller 中加入
这个好处就是导出的表头信息通过 properties来获取!
import org.codehaus.groovy.grails.commons.* import org.apache.poi.hssf.usermodel.HSSFWorkbook import org.apache.poi.hssf.usermodel.HSSFSheet import org.apache.poi.hssf.usermodel.HSSFRow import org.apache.poi.hssf.usermodel.HSSFCell import org.codehaus.groovy.grails.commons.GrailsDomainClass import org.codehaus.groovy.grails.web.converters.ConverterUtil import org.springframework.web.servlet.support.RequestContextUtils as RCU import org.codehaus.groovy.grails.scaffolding.DomainClassPropertyComparator; import org.springframework.context.MessageSource import org.apache.poi.hssf.usermodel.HSSFCellStyle import org.apache.poi.hssf.usermodel.HSSFFont import org.apache.poi.hssf.util.HSSFColor; class XlsExportService { // def messageSource MessageSource messageSource boolean transactional = true // def config = ConfigurationHolder.config // def domainName def xlsExport(out, request, domain, datas) { def excludedProps = ['id', 'version'] def column = [] def titles = [] def outProperties def locale = RCU.getLocale(request) // def text def args def domainName = domain.toLowerCase() GrailsDomainClass domainClass = ConverterUtil.getDomainClass(domain) if (domainClass != null) { outProperties = domainClass.properties.findAll {!excludedProps.contains(it.name)} } Collections.sort(outProperties, new DomainClassPropertyComparator(domainClass)) outProperties.each { column << "${it.name}" def text = messageSource.getMessage( "${domainName}.${it.name}".toString(), args == null ? null : args.toArray(), "${domainName}.${it.name}".toString(), locale) titles << text } HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("new sheet"); HSSFRow row HSSFCell cell HSSFCellStyle style = wb.createCellStyle() HSSFFont font = wb.createFont() font.setFontHeightInPoints((short)12) font.setFontName("宋体") font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD) style.setFont(font) style.setAlignment(HSSFCellStyle.ALIGN_CENTER) style.setFillBackgroundColor(HSSFColor.ORANGE.index) // style.setFillPattern(HSSFCellStyle.) // set the title row = sheet.createRow((short) 0); titles.eachWithIndex {title, i -> cell = row.createCell((short) (i)); cell.setCellStyle(style) cell.setCellValue(title); } // set the data datas.eachWithIndex {data, i -> row = sheet.createRow((short) (i+1)); column.eachWithIndex {p, j -> row.createCell((short) (j)).setCellValue(data."${p}"); } } // Write the output to a file wb.write(out); out.close() } }
在你的 domaincontroller 中加入
def exportXls = { // def excludedProps = ['id', 'version'] // def column = [] // def titles = [] // def outProperties = [] // GrailsDomainClass domainClass = ConverterUtil.getDomainClass("Person"); // if (domainClass != null) { // domainClass.persistentProperties.each {p -> // outProperties << p.name // }; // // } // outProperties.each { // column << "${it}" // titles << message(code: "person.${it}") // } response.setHeader("Content-disposition", "attachment; filename=person.xls") response.setContentType("application/vnd.ms-excel") // ServletOutputStream f = response.getOutputStream(); xlsExportService.xlsExport(response.outputStream, request,"Person", Person.list()) // render(contextType:"application/vnd.ms-excel") }
这个好处就是导出的表头信息通过 properties来获取!
评论
4 楼
kapok_fly
2009-12-02
有个export plugin你可以try一下, 不过不能针对大数据量进行export.
可以自己改写.
可以自己改写.
3 楼
leon1509
2009-05-13
导出的只有title,没有数据啊?
2 楼
dellsoft
2008-07-14
你确认在你的controller中定义这个XlsExportService 吗
XlsExportService xlsExportService
XlsExportService xlsExportService
1 楼
ourfirebird
2008-07-13
不能执行:java.lang.NullPointerException: Cannot invoke method xlsExport() on null object
在controller中调用 xlsExportService.xlsExport(response.outputStream, request,"Person", Person.list())时,request参数如何赋值?
在controller中调用 xlsExportService.xlsExport(response.outputStream, request,"Person", Person.list())时,request参数如何赋值?
发表评论
-
Rescheduling a Quartz job programatically
2012-02-14 11:34 0In our current project we fa ... -
1.4M
2011-06-23 20:44 8481.4 版本后,如果用代理上网,需要设置代理,才能让grail ... -
groovy Ip地址表达式
2011-04-28 18:55 1603 -
change the default locale
2011-04-13 19:37 979... -
groovy
2010-08-09 14:40 1197def urls = ["ip1" ... -
grails + jquery grid plugin
2010-03-14 09:52 1545Jquery Grid Json 格式方法 http ... -
grails +zkoss 开发总结
2010-03-14 09:42 1556zk component develop 一、)jav ... -
grails 开发总结
2010-03-14 09:40 1620在使用grails 开发的过程,一些总结,随笔 ... -
grails +zkoss
2010-01-09 16:58 1303基于grails+zkoss应用 1)登录窗口 2)主 ... -
grails 跟踪 sql
2009-05-14 15:53 1048http://www.piragua.com/2009/06/ ... -
grails assgined the id
2009-05-09 22:29 1268使用hibernate 的自定义主键 impor ... -
grails 原始sql
2009-05-09 22:13 1256import groovy.sql.Sql; c ... -
hibernate custom generator
2009-05-09 20:54 1056public class CustomIdSequenceGe ... -
grails 1.1 Gorm 部分新特性提前知道
2008-10-30 17:21 1845说明:grails 1.1部分新特性,我只是看 grails ... -
grailsflow
2008-10-30 16:43 2447grailsflow 具体地址 http:/ ... -
grails 根据数据库自动生产 domains
2008-07-04 17:25 2939GenerateDataabase.groovy impo ... -
grails war 包定制
2008-07-04 17:18 1494在config.groovy 下面配置 grails.war ... -
grails datasource 中配置数据源用户名称和密码 加密
2008-07-04 17:16 2457在datasource.groovy password = Y ... -
grails 自定义 validator
2008-07-04 17:05 1153http://www.zorched.net/2008/01/ ... -
grails services transaction
2008-07-02 15:26 1638在 graisl 应用中,默认情况下,services 的事务 ...
相关推荐
在Grails框架中,CSV(Comma Separated Values)文件是一种常见的数据导出格式,它以逗号分隔每一列数据,便于数据交换和处理。本篇将详细讲解如何在Grails应用中实现CSV文件的导出功能。 一、CSV简介 CSV文件是一...
**Grails 框架详解** Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之上,旨在简化开发过程并提高生产力。Grails 的设计深受Ruby on Rails的影响,提供了MVC(模型-视图-控制器)架构模式...
《Grails权威指南》是一本全面深入探讨Grails框架的专著,旨在帮助读者掌握这一强大的Web开发工具。Grails是一种基于Groovy语言的开源框架,它为构建现代、高效的应用程序提供了简洁高效的解决方案。本指南针对不同...
【Grails项目搭建详解】 Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,尤其适合快速构建动态网站。在Eclipse中搭建Grails项目可能相对复杂,但通过以下步骤,即使是初学者也能顺利进行。 1. *...
《Grails用户手册》 Grails,作为一个基于Groovy语言的开源Web应用框架,深受开发者喜爱,它简化了Java开发的复杂性,提供了强大的MVC(Model-View-Controller)架构,以及丰富的插件系统。这份用户手册将帮助你...
对于Grails开发,我们需要的是Eclipse中的Grails插件,它能够提供对Grails项目的创建、运行、调试等一系列功能。 **Grails**是基于Groovy语言的全栈式Web开发框架,它借鉴了Ruby on Rails的设计理念,提供了快速...
Grails是一个基于Groovy语言的全栈框架,它遵循约定优于配置的原则,并且紧密集成Spring和Hibernate等流行的Java库,简化了开发流程。Grails在IT行业中尤其受到重视,因为它能够帮助开发者快速搭建并部署基于MVC模式...
### Grails 快速开发 Web 应用程序 #### 一、Grails 概述 Grails 是一种基于 Groovy 的开源应用框架,用于简化 Web 应用程序的开发过程。它采用约定优于配置的原则,这使得开发者可以更快地创建功能丰富的 Web ...
《Grails 2.4.4 框架深度解析》 Grails 2.4.4 是一个基于Java的开源Web应用框架,它利用Groovy语言的强大特性,为开发者提供了一种高效、灵活的开发环境。这个压缩包“grails-2.4.4.zip”包含了完整的Grails 2.4.4...
**Grails 概述** Grails 是一个基于 Groovy 语言的开源 web 应用程序框架,它构建在 Java 平台上,旨在提高开发效率,简化常见 Web 开发任务。Grails 遵循 Model-View-Controller (MVC) 架构模式,允许开发者快速...
《Grails 2 的终极指南》是一本深入探讨Grails框架精髓的专业书籍,该书以英文撰写,旨在为读者提供全面、深入的Grails框架学习资料。Grails框架基于Groovy语言,是一种高度动态、敏捷的Java应用开发框架,它简化了...
Eclipse 插件 Grails(Groovy)是一个强大的开发工具,它使得在Eclipse环境中进行Groovy和Grails应用的开发变得更为便捷。Groovy是一种动态、面向对象的编程语言,而Grails则是一个基于Groovy的开源Web应用框架,...
### Groovy和Grails配置方法 #### 一、Groovy与Grails简介 Groovy是一种强大的面向对象编程语言,它运行在Java平台上,并且能够直接与Java代码进行交互。Groovy支持函数式编程特性,拥有丰富的语法糖以及简洁的...
**Grails登录系统详解** Grails是一个基于Java的开源Web应用程序框架,它使用Groovy语言进行开发,提供了高效、简洁的编程模型。在Grails中实现用户登录功能是构建任何Web应用的基础,它确保了数据的安全性和用户...
### Grails入门指南知识点 #### 一、Grails框架简介 - **背景**: Grails是一个基于Groovy语言的开源Web应用框架,适用于Java平台。它旨在简化开发过程,提高开发效率,尤其受到那些希望保留Java环境同时寻求更高效...
《Grails中文参考手册》是针对Groovy编程语言构建的Web应用框架——Grails的一份详尽学习资料。Grails以其高效、灵活和强大的特性,成为开发人员在Java平台上构建Web应用的热门选择。这份手册旨在帮助初学者快速上手...
《Grails技术详解:中文文档与Fckeditor-0.9.5插件解析》 Grails,作为一款基于Groovy语言的开源Web应用框架,以其高效、简洁的特性深受开发者喜爱。它集成了许多Java EE的功能,同时简化了开发流程,使得开发人员...
《Grails 1.1 中文文档》是一个非常宝贵的资源,尤其对于国内的开发者来说,由于Grails在中文社区中的资料相对较少,这份文档的价值不言而喻。Grails是一个基于Groovy语言的开源Web应用框架,它借鉴了Ruby on Rails...