Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails:如何使我的列表成为MS Excel文件?_Excel_Grails_Export - Fatal编程技术网

Grails:如何使我的列表成为MS 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' )

gsp分为两部分,顶部类似于搜索过滤器,底部是Grails提供的常规列表

我的list.gsp中有一个模板_list.gsp。我想创建一个按钮,使_list.gsp模板成为MS Excel文件

但我只希望模板在Excel文件中。而不是页面的其余部分


我怎样才能以最简单直接的方式做到这一点??谢谢大家!

在你的索引方法中试试这个相当肮脏的把戏:

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()}