隨筆-112  評論-73  文章-0  trackbacks-0

          Grails _ export 插件使用

           Export 插件可以將domainClass在數據庫中的內容導出到excel pdf txt 等格式的文件,操作方便簡單.

           使用命令grails install-plugins export 安裝。

           使用方法:

          頁面中加入下面代碼:

           <export:resource />

           <export:formats /> 

          <export:formats formats="['csv', 'excel', 'ods', 'pdf', 'rtf', 'xml']" />

          如果想按條件查詢結果集導出數據則需要加入params參數

          <export:formats formats="['excel', 'rtf']" params="${filterParams?filterParams:params}"/>

           

          Controller 中加入下面代碼:

           

          import org.codehaus.groovy.grails.commons.ConfigurationHolder

          // Export service provided by Export plugin     

              def exportService

              def list = {

                  if(!params.max) params.max = 10

                      if(params?.format && params.format != "html"){

                            response.contentType = ConfigurationHolder.config.grails.mime.types[params.format]              response.setHeader("Content-disposition", "attachment; filename=books.${params.extension}")

          exportService.export(params.format, response.outputStream,Book.list(params), [:], [:])

                      }

                  [ bookInstanceList: Book.list( params ) ]

              }


          自定義導出字段與顯示字段名

          params.max = Math.min(params.max ? params.int('max') : 10, 100)

                     results =AddressList.list(params);

                     if(params?.format && params.format != "html"){

                        response.contentType = ConfigurationHolder.config.grails.mime.types[params.format];

                        response.setHeader("Content-disposition", "attachment; filename=books.${params.extension}")

                        List fields = ["name","coName","mTel","officeTel","address","qq","msn","email","province","city"];

                        Map labels = ["name": "姓名","coName":"單位名稱","mTel":"移動電話","officeTel":"辦公電話","address":"通訊地址","qq":"QQ","msn":"MSN","email":"Email","province":"省份","city":"城市"]

                        exportService.export(params.format, response.outputStream,results, fields,labels,[:], [:])

                     }

                     [addressListInstanceList: results, addressListInstanceTotal: AddressList.count()]

           

          其中 fields 是需要導出的字段名 labels 是需要顯示的列名。


          posted on 2010-03-12 17:06 Libo 閱讀(1245) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 绩溪县| 龙南县| 清丰县| 鹤庆县| 漳州市| 襄城县| 大同市| 苍溪县| 潼南县| 永定县| 太仓市| 宁乡县| 西畴县| 麦盖提县| 文昌市| 红河县| 普洱| 白沙| 沭阳县| 黄骅市| 江永县| 荔浦县| 镇平县| 台州市| 长兴县| 额尔古纳市| 开阳县| 綦江县| 利辛县| 永年县| 沙雅县| 沈丘县| 乌审旗| 威信县| 来安县| 三亚市| 米泉市| 盱眙县| 广宁县| 聂荣县| 达尔|