*问题:grails 导出‘csv', 'excel', 'ods', 'pdf', 'rtf', 'xml',用plusin、简单
*思想:【天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。】
任何事情请先尝试从官网学习,确实不行再看论坛,希望大家都分享学习方法及享受其中的乐趣。
export grails plusin:http://grails.org/plugin/export
*目录:
1~6 很简单的实现导出domain里面的内容
7 自定义导出内容,表头可以国际化,字段可以特殊处理,比如取字典、转格式...
*Integrated Develop Environment:
ItelliJ
1、To install the plugin
type:> grails install-plugin export
2、Add MimeTypes for CSV,
Excel, ODS, PDF and RTF to grails-app/conf/Config.groovy so that it looks
similar to:
grails.mime.types = [ html: ['text/html','application/xhtml+xml'],
xml:
['text/xml', 'application/xml'],
text:
'text-plain',
js: 'text/javascript',
rss:
'application/rss+xml',
atom:
'application/atom+xml',
css:
'text/css',
csv: 'text/csv',
pdf:
'application/pdf',
rtf:
'application/rtf',
excel:
'application/vnd.ms-excel',
ods:
'application/vnd.oasis.opendocument.spreadsheet',
all:
'*/*',
json:
['application/json','text/json'],
form:
'application/x-www-form-urlencoded',
multipartForm: 'multipart/form-data'
]
3、Export plugin uses
resource plugin to provide resources (since version 1.1). Add the following
markup to your GSP header:
<r:require module="export"/>
4、Add
the export bar to your GSP page e.g. below the paginate buttons:
<!-- 分页标签 多余的东西 -->
<div class="paginateButtons">
<g:paginate total="${Book.count()}"
/>
</div>
<export:formats />
or
<!—formats里需要集中导出就配置几种; params="${params}"
带查询条件 -->
<export:formats formats="['csv',
'excel', 'ods', 'pdf', 'rtf', 'xml']" params="${params}"/>
</div>
The
formats tag supports the following attributes and allows you to pass through
HTML attributes:
- formats (Formats
which should be displayed, List of Strings, e.g. ['csv', 'excel', 'ods',
'pdf', 'rtf', 'xml'])
- params
(Additional request parameters, Map, e.g. [sort: params?.sort, order:
params?.order])
- action (Action
which should be called, defaults to current action)
- controller
(Controller which should be called, defaults to current controller)
5、You can customize the
labels displayed on the export bar by adding the following lines to
grails-app/i18n/messages.properties:
default.csv=CSV
default.excel=Excel
default.pdf=PDF
default.rtf=RTF
default.xml=XML
default.ods=ODS
修改显示内容:
默认:
修改:
6、To make the plugin work
you need to add some code to your controller:
class BookController {
// Export service
provided by Export plugin
def exportService
def
grailsApplication //inject
GrailsApplication
...
def list = {
if(!params.max) params.max =
10
if(params?.format &&
params.format != "html"){
response.contentType
= grailsApplication.config.grails.mime.types[params.format]
response.setHeader("Content-disposition", "attachment; filename=books.${params.extension}")
//Book.list(params) 列表修改为自己定义的列表
exportService.export(params.format, response.outputStream,Book.list(params), [:], [:])
}
[ bookInstanceList:
Book.list( params ) ]
}
}
...
体会:神马,简单6步实现了导出poi得气绝了,犒劳犒劳自己
7、自定义导出内容
This will export all book
objects with all attributes except version. You can also configure which
attributes should be exported. The following example will rely on a simple
domain class:
class Book {
String title
String author
}
And now
for the controller code:
class BookController {
//注入 导入service
def exportService
//应用对象 猜想为读配置文件信息
def
grailsApplication //inject
GrailsApplication
def list = {
//导出最大记录数设置 设置大一点,本人设置1k
if(!params.max) params.max = 1000
//根据params.format参数来判断是否做导出操作
if(params?.format && params.format != "html"){
response.contentType
= grailsApplication.config.grails.mime.types[params.format]
////设置HTML header内容,1、为附件下载形式 2、文件名字filename
response.setHeader("Content-disposition", "attachment;
filename=books.${params.extension}")
//定制导出的 domain.fields
List fields = ["author", "title"]
//定制导出的表头
Map
labels = ["author": "Author", "title": "Title"]
/* 之前版本的写法
Formatter closure in previous releases
def
upperCase = { value ->
return value.toUpperCase()
} */
// 新版本的写法 格式化字段
Formatter closure
def
upperCase = { domain, value ->
return value.toUpperCase()
}
//配置格式化给指定field
Map
formatters = [author: upperCase]
//配置表格的标题,默认为"sheet1",设置单元格的比例
Map
parameters = [title: "Cool books", "column.widths": [0.2, 0.3, 0.5]]
//缺省项
用"[:]"
exportService.export(params.format,
response.outputStream, Book.list(params), fields, labels, formatters,
parameters)
}
[
bookInstanceList: Book.list( params ) ]
}
}
...
You can
see how the fields are now set explicitly. You can use labels to customize the
output of the fields e.g. for i18n. Using formatters it is possible to
customize how the resulting values are generated which can be used to specify a
particular date format etc. by just mapping an attribute name to a closure. It
is also possible to specify nonexistant fields and add formatters for those
fields to produce static content like today's date.
- 大小: 2.6 KB
- 大小: 3.5 KB
- 大小: 52 KB
- 大小: 19.2 KB
分享到:
相关推荐
在Grails框架中,CSV(Comma Separated Values)文件是一种常见的数据导出格式,它以逗号分隔每一列数据,便于数据交换和处理。本篇将详细讲解如何在Grails应用中实现CSV文件的导出功能。 一、CSV简介 CSV文件是一...
在深入探讨如何在Eclipse环境中使用Grails类创建工具之前,我们先简要回顾一下Grails框架及其核心特性。Grails是一款基于Groovy语言的高性能Web应用开发框架,它遵循约定优于配置的原则,极大地简化了Web应用的开发...
《Grails入门指南中文第二版》是一本专为初学者设计的Grails框架教程,旨在帮助读者快速掌握Grails开发的基础知识和技能。Grails是一个基于Groovy语言的开源Web应用框架,它采用模型-视图-控制器(MVC)架构模式,极...
- **AJAX in Grails**:书中会介绍如何使用jQuery或其他库实现异步更新,提升用户体验。 - **Remote Function Calls (RFC)**:通过AJAX调用控制器的方法,实现页面部分更新。 6. **Java平台集成**: - **...
### Grails基础教程知识点概述 #### 一、Grails简介 **1.1 Java的困惑** 随着互联网技术的发展,传统的Java开发方式面临着诸多挑战。Java虽然功能强大且成熟稳定,但在快速迭代、灵活应对需求变化方面显得力不足...
### Grails动态标签库概述 #### 一、Grails简介 Grails是一个基于Groovy语言构建的现代化MVC(Model-View-Controller)Web框架,它借鉴了Ruby on Rails的成功经验,同时也集成了许多成熟的Java技术,如Spring、...
### Grails快速开发Web应用程序知识点解析 #### 一、Grails框架概述 - **定义**:Grails是一个基于Groovy语言构建的开源Model-View-Controller (MVC) Web开发框架。它旨在简化Web应用程序的开发流程,提高开发效率...
在本教程中,我们将探讨如何使用GORM(Grails Object-Relational Mapping)构建Spring Boot应用程序。GORM是Grails框架的核心部分,它为开发者提供了简单、强大的数据持久化功能,支持Hibernate和MongoDB等数据库。...
### Grails_Portal.pdf 关键知识点解析 #### Groovy简介 - **定义**:Groovy是一种敏捷且动态的语言,专为Java虚拟机(JVM)设计。 - **特点**: - 在保留Java强项的基础上增加了额外功能。 - 使现代编程特性对Java...
Groovy_in_Action.pdf Groovy经典入门.pdf 使用Grails快速开发Web应用.pdf 在Eclipse里使用Grails类创建工具.pdf Programming Groovy. Dynamic Productivity for the Java Developer.pdf等一系列groovy资源
### Groovy and Grails Recipes 知识点概览 #### 一、Groovy by Example **1. Getting Started with Groovy** - **介绍**: 本章主要介绍了如何开始使用Groovy编程语言。对于初次接触Groovy的新手来说,这是一个很...
根据提供的文件信息,“Grails Getting Started-II.pdf”,我们可以推断出文档主要介绍的是关于Grails框架的入门教程第二部分。Grails是一个基于Groovy语言的开源Web应用开发框架,它结合了Java平台的强大功能和敏捷...
Grails是一个使用Groovy语言编写的高生产力的框架,其使用约定优于配置的理念,允许快速开发Web应用程序。RESTful是一种面向资源的架构风格,它的主要特征是使用HTTP方法来构建Web服务,使得客户端和服务器之间的...
**Grails 框架详解** Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之上,旨在简化开发过程并提高生产力。Grails 的设计深受Ruby on Rails的影响,提供了MVC(模型-视图-控制器)架构模式...
标题中的“grails使用freemarker.rar”表明这是一个关于如何在Grails框架中应用FreeMarker模板引擎的资源包。FreeMarker是一个开源的、基于Java的模板引擎,它用于生成动态HTML或其他格式的文本,比如XML、PDF等。...
《Grails完全入门》知识点详解 一、Grails框架概览 Grails是一个基于Groovy语言的开源Web应用框架,其设计目标是简化Java Web应用的开发过程,提供更为直观和简洁的编程体验。它结合了Groovy的动态性、Spring的依赖...
【Grails框架综述】 Grails是一个基于Groovy编程语言的开源Web应用开发框架,它在2005年夏天诞生,旨在解决Java EE平台开发效率低下的问题。Grails构建于Spring、Hibernate等标准Java框架之上,为开发者提供了一个...
Grails3是一个基于Groovy语言的开源Web应用程序框架,采用约定优于配置的原则来简化Web应用的开发。logback是当前流行的日志框架,它与log4j有着相同的源,并提供了更为强大的功能。本文主要介绍如何在Grails3项目中...