2010-10-08 8 views
0

gsp est divisé en deux, la partie supérieure est comme un filtre de recherche, et la partie inférieure est la liste régulière qui est fournie par GrailsGrails: Comment faire de ma liste un fichier MS Excel?

J'ai un _list.gsp de modèle dans mon list.gsp. Et je veux créer un bouton pour faire de ce modèle _list.gsp un fichier MS Excel. Mais je veux seulement que le modèle soit sur le fichier Excel. Non le reste de la page

Comment puis-je le faire de la manière la plus simple et la plus directe possible? Je vous remercie!

Répondre

1

essayer cette astuce assez sale dans votre méthode d'index:

response.setHeader('Content-Disposition', 'attachment;filename=list.xls') 

Explication: l'astuce est qu'une page HTML renommé * .xls peut être lu par des suites de logiciels de bureau. Ce que vous faites est de dire au navigateur de télécharger un fichier avec ce nom, au lieu de naviguer vers un fichier HTML normal. Si vous souhaitez l'utiliser dans un bouton, vous devez procéder comme pour toute page générant du code HTML, puis ajouter cet en-tête à la réponse. response est global pour les actions dans les contrôleurs Grails.

+0

Après quoi? Je veux l'exporter vers Excel en cliquant sur un bouton. – randomizertech

+0

J'ai ajouté l'explication. – mschonaker

+0

Je suis désolé, je suis un peu nouveau à Grails, pourriez-vous me donner un exemple ?? Comme chaque fois que je clique sur le bouton, il devrait télécharger le fichier .xls mais je dois encore être en mesure de faire d'autres choses dans la page, j'ai un filtre de recherche, et je dois pouvoir envoyer les résultats de recherche à un. fichier – randomizertech

1

vous pouvez aussi jeter un oeil au module d'exportation si vous souhaitez exporter la liste format Excel

http://www.grails.org/plugin/export

+0

J'ai installé le plugin d'exportation, mais il ne semble pas fonctionner correctement – randomizertech

+0

@ fgualda87 quel genre de problèmes –

+0

L'exécution de l'action [liste] du contrôleur [density.DensityController] a provoqué une exception: Aucune propriété: réponse pour la classe: java. lang.String – randomizertech

0

Tout ce que vous avez besoin est d'envoyer des données de recherche à votre contrôleur, dans le contrôleur, vous pouvez envoyer du contenu comme expliqué par mschonaker, ceci est un exemple de ce que je faisais

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

Jetez un oeil à le plug-in Excel-export. Ceci a le support pour le téléchargement seulement au format .xlsx. Exporte un Excel avec le codage le plus simple. Je suis passé à ce plugin depuis le plugin export car il y avait un conflit avec le plugin de rendu. https://grails.org/plugin/excel-export

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