Grails:如何使我的列表成为MS Excel文件?
gsp分为两部分,顶部类似于搜索过滤器,底部是Grails提供的常规列表 我的list.gsp中有一个模板_list.gsp。我想创建一个按钮,使_list.gsp模板成为MS Excel文件 但我只希望模板在Excel文件中。而不是页面的其余部分Grails:如何使我的列表成为MS Excel文件?,excel,grails,export,Excel,Grails,Export,gsp分为两部分,顶部类似于搜索过滤器,底部是Grails提供的常规列表 我的list.gsp中有一个模板_list.gsp。我想创建一个按钮,使_list.gsp模板成为MS Excel文件 但我只希望模板在Excel文件中。而不是页面的其余部分 我怎样才能以最简单直接的方式做到这一点??谢谢大家! 在你的索引方法中试试这个相当肮脏的把戏: response.setHeader( 'Content-Disposition', 'attachment;filename=list.xls' )
我怎样才能以最简单直接的方式做到这一点??谢谢大家! 在你的索引方法中试试这个相当肮脏的把戏:
response.setHeader( 'Content-Disposition', 'attachment;filename=list.xls' )
解释:诀窍在于重命名为*.xls的HTML页面可以被office软件套件读取。您要做的是告诉浏览器下载一个具有该名称的文件,而不是导航到常规HTML文件。如果您想在按钮中使用它,您应该继续处理任何HTML生成页面,然后将此标题添加到响应中<代码>响应对Grails控制器中的操作是全局的。如果要将列表导出为excel格式,还可以查看导出插件
您只需将搜索数据发送到控制器,在控制器中您可以发送内容,如mschonaker所述,这是我所做的一个示例
def report = {
def reportType = params.report
....
.....
//Service class that collects data based on search data passed in params
def data = reportservice.execute(param)
//called export plugin to generate xls file
response.contentType = ConfigurationHolder.config.grails.mime.types[params.format]
response.setHeader("Content-disposition", "attachment; filename=${fileName}")
exportService.export(...)
}
看看Excel导出插件。它只支持以.xlsx格式下载。使用最简单的编码导出excel。 我从导出插件切换到这个插件,因为它与渲染插件冲突。
那之后呢??我想在点击按钮时将其导出到Excel。对不起,我对Grails有点陌生,你能给我举个例子吗??就像每当我点击按钮,它应该下载.xls文件,但我仍然需要能够在页面中做一些其他事情,我有一个搜索过滤器,我需要能够发送搜索结果到一个.xls文件我安装了导出插件,但它似乎不起作用right@fgualda87什么样的问题执行操作[列表]控制器[density.DensityController]的错误导致异常:无此类属性:类的响应:java.lang.String
response.contentType = 'application/vnd.ms-excel'
response.setHeader("Content-disposition", "attachment; filename=OrderList.xlsx")
new WebXlsxExporter().with { //pass the contructor with "templateFileNameWithPath"
setResponseHeaders(response,new Date().format('dd-MM-yyyy_hh-mm')+"OrderList.xlsx")
fillHeader(labels)
add(data, fields)
save(response.outputStream)
}
response.outputStream.flush()
response.outputStream.close()}