4

grails エクスポート プラグインを使用して、ドメイン クラスのエクスポート可能ファイルを xls および csv ファイルに取得したいと考えています。

front.gspという名前のメイン レイアウトでは、次のようにしました。

<!DOCTYPE html>
<html lang="en">
    <head>
        ...
        <g:layoutHead />
    </head>
    <body>
        <sec:ifLoggedIn>
        <r:require module="export"/>
        <export:formats formats="['csv', 'excel', 'ods', 'pdf', 'rtf', 'xml']" action="exportTest" />
        ...
        <g:layoutBody />
        <r:layoutResources/>
        <script type="text/javascript" src="${resource(dir: 'js', file: 'jquery.min.js')}"></script>
        <script type="text/javascript" src="${resource(dir: 'js', file: 'bootstrap.min.js')}"></script>
        <script type="text/javascript" src="${resource(dir: 'js', file: 'application.js')}"></script>
    </body>
</html>

私のDomainClassController.groovyに私はそれをしました:

def exportTest() {
        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=contacts.${params.extension}")

            exportService.export(
                params.format,
                response.outputStream,
                ContactDTO.list(params),
                [:],
                [:])
            [contactDTOInstanceList: ContactDTO.list( params )]
        }
    }

また、exportTest.gspという名前のビューをコントローラーのビュー フォルダーに作成します。ファイルを空にして、404 問題を一時的に解決します。

エラー メッセージは表示されませんでしたが、エクスポート ボタンをクリックすると、自分のページexportTest.gspにリダイレクトされ、ファイルがダウンロードされません。

grails export plugin を使用してダウンロードしたファイルを取得するにはどうすればよいですか? ユーザー ガイドに従っていますが、エラーはありません (解決済み) が、ファイルは作成されません。

読んでくれてありがとう !

スナイト

編集:エクスポートリンクをクリックすると、生成されたURLが次のようになることがわかります:

http://localhost:8080/site/controller/action?format=excel&extension=xls

しかし、奇妙なことに、「println params」をコントローラーに作成すると、出力は次のようになります。

[extension:xls, action:exportTest, format:null, controller:contactDTO, max:10]

params.format は null ですが、url に設定されています ?!!!

そのようにURLを変更します(およびコントローラーコードを適応させます):

http://localhost:8080/site/controller/action?formatD=excel&extension=xls

次のエラーを教えてください:

Firefox ne peut trouver le fichier à l'adresse http://localhost:8080/site/controller/action?formatd=excel&extension=xls.
4

3 に答える 3

0

私はこの道を通っていくつかのことをしました

params.format=params.extension<br/>
        if(params.format=='xls') {
            params.format='excel'
        }

説明: そのままparams.formatで、拡張子のシステム印刷を行いました。また、拡張子はxlsnullを除くすべての拡張子の形式と同じであることに注意してください。したがって、xls I の場合、 Excelエクスポートの形式は「Excel」でなければなりません。これが理由です。私のケースでは、csvExcelpdf、およびxmlで正常に動作します。ODDなどでテストされていません..

于 2015-06-24T13:37:38.723 に答える