[Java] [POI] Créer un tableau dans Word et commencer une nouvelle ligne dans une cellule

Chose que tu veux faire

Créer un fichier MS Office Word en Java Insérer un tableau par spécification de matrice Insérer des caractères avec des sauts de ligne dans une cellule spécifique

Quoi utiliser

Langue: Java 1.8

IDE : eclipse Version: Neon.3 Release (4.6.3)

FW : Spring boot 1.5.7

Outil de gestion de projet: Maven 4.0.0

** Personnes sans MS Office ** Installons MS Office Word Viewer.

Divers préparations

La méthode DL de l'IDE et l'introduction de STS Plugin sortiront si vous google, donc je vais l'omettre Rechercher un mot Eclipse → eclipse pleiades STS Plugin → eclipse spring bot plugin

J'omettrai la création d'un nouveau projet car il sortira si je google.

Ajouter une bibliothèque avec Maven

Ajoutez ce qui suit dans <dependencies> ~ </ dependencies> de pom.xml

pom.xml


<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi-ooxml-schemas</artifactId>
	<version>3.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi-ooxml</artifactId>
	<version>3.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi</artifactId>
	<version>3.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans -->
<dependency>
	<groupId>org.apache.xmlbeans</groupId>
	<artifactId>xmlbeans</artifactId>
	<version>2.6.0</version>
</dependency>

création html

index.html


<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org">
      <head></head>

      <body>
	      <a href="demo/download">Télécharger Ooooooooooooooooooooooooooooooooooooooooooooooooo</a>
      </body>

</html>

Création de contrôleur

DemoController.java


package com.example.demo.controller;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/demo")
public class DemoController {

	@GetMapping
	public ModelAndView demo(ModelAndView mv) {
		mv.setViewName("index");

		return mv;
	}

    @GetMapping("download")
    public void download(HttpServletResponse response) throws IOException {

        //Création de fichier Word à partir d'ici
        XWPFDocument document = new XWPFDocument();
        XWPFParagraph paragraph;
        XWPFRun run;
        XWPFTable table;

        //Insérer un tableau 10 x 1 1er argument: nombre de lignes 2ème argument: nombre de cellules par ligne
        table = document.createTable(10, 1);

        paragraph = table.getRow(0).getCell(0).getParagraphs().get(0);
        run = paragraph.createRun();
        run.setText("La première ligne");

        //Principal: Paragraphe(Paragraphe)ajouter à
        // run.addCarriageReturn();Alors ça ne casse pas.
        paragraph = table.getRow(0).getCell(0).addParagraph();
        run = paragraph.createRun();
        run.setText("2e ligne");

        paragraph = table.getRow(0).getCell(0).addParagraph();
        run = paragraph.createRun();
        run.setText("3e ligne");

        paragraph = table.getRow(0).getCell(0).addParagraph();
        run = paragraph.createRun();
        run.setText("4ème ligne");
        //Création de fichier Word jusqu'à ici

        //Définissez le format et le nom de fichier du fichier à télécharger par HttpServletResponse
        response.setContentType("application/msword");
        response.setHeader("Content-Disposition", "attachment;filename=\"" + "fileName" + ".docx\"");

        //Définissez le fichier Word créé dans HttpServletResponse
        document.write(response.getOutputStream());

        if (document != null) {
            document.close();
        }
    }
}

Vérification

Lancer l'application Spring Boot

Accéder à loalhost: 8080 / démo

[Télécharger Ooooooooooooooooooo] Appuyez sur

Enregistrez le fichier dans un emplacement approprié et ouvrez-le

Recommended Posts

[Java] [POI] Créer un tableau dans Word et commencer une nouvelle ligne dans une cellule
Java crée un tableau dans un document Word
Jonction Java et division des cellules de tableau dans un document Word
[Java] Comment rompre une ligne avec StringBuilder
Créer une nouvelle application avec Rails
Trier la liste par ordre décroissant en Java et générer une nouvelle liste de manière non destructive
Comment créer un nouveau projet Gradle + Java + Jar dans Intellij 2016.03
[Java] Créer et appliquer un masque des diapositives
Créer une application TODO dans Java 7 Créer un en-tête
Avoir un outil pour créer et ouvrir une nouvelle toile dans l'aperçu Mac
Deux façons de démarrer un thread en Java + @
Créer un CSR avec des informations étendues en Java
Essayez de créer un babillard en Java
[Java] Créer une collection avec un seul élément
Créons un framework Web ultra-simple avec Java
Java ajoute et supprime les filigranes dans les documents Word
[Mémo de travail de l'application personnelle] Comment afficher un graphique à barres et un graphique linéaire dans un graphique
Créer un servlet Java et un fichier WAR JSP à déployer sur Apache Tomcat 9 avec Gradle
Comment créer un environnement Java en seulement 3 secondes
Différence entre nouveau et créer dans le contrôleur d'action Rais
Ecrire une classe en Kotlin et l'appeler en Java
J'ai essayé de créer une compétence Clova en Java
Comment créer un URI de données (base64) en Java
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Créez une application JAVA WEB et essayez OMC APM
[Java] Une technique pour écrire des constructeurs, des getters et des setters d'un seul coup avec IntelliJ IDEA.
[Java] Créer un filtre
Créer JSON en Java
Nouveautés de Java 8
Nouveautés de Java 9,10,11
Activez la cellule A1 de chaque feuille de fichier Excel avec Java
Créer un SlackBot avec AWS lambda et API Gateway en Java
Créer une méthode pour renvoyer le taux de taxe en Java
Créer un projet Tomcat en utilisant Eclipse Pleiades All in One
Comment développer et enregistrer une application Sota en Java
Créer un environnement de développement d'équipe Java et JavaScript (construction d'environnement gradle)
Supprimer les sauts de ligne et les tabulations consécutifs avant et après dans Java