Créer un document de tableau simple à l'aide de la boîte à outils ODF

Si vous avez pour tâche de créer quelques rapports simples et que vos utilisateurs utilisent Open Office, vous n'avez pas besoin d'utiliser de grands systèmes de rapports tels que Bird, Jasper ou leurs analogues.

La boîte à outils ODF est idéale pour cette tâche.

ODF Toolkit , selon les informations du site officiel, est un ensemble de modules Java qui vous permettent de créer, numériser ou manipuler des documents au format d'un document ouvert (ISO / IEC 26300 == ODF). Contrairement à d'autres approches, qui sont basées sur des manipulations d'exécution avec des éditeurs lourds via l'interface d'automatisation, ODF Toolkit est léger et idéal pour une utilisation sur serveur.

image

Je travaille sur un projet d'automatisation des processus commerciaux internes et souvent les utilisateurs demandent des rapports sur les informations cumulatives, et en raison du fait que Open Office est très courant à la Banque agricole, Bird est utilisé pour créer des rapports.

Il vous permet de générer n'importe quel format de document. En principe, une excellente solution, simple, compréhensible, mais il est devenu intéressant de savoir s'il est possible d'implémenter la même chose à l'intérieur de Java.

J'ai donc rencontré la boîte à outils ODF.

Je vais décrire un certain nombre de méthodes de base, vous pouvez en apprendre plus sur la page du projet odftoolkit.org .

Commençons donc par créer un document:

TextDocument doc = TextDocument.newTextDocument();

Après cela, passons à la création d'un paragraphe, et si c'est Apache Poi (une bibliothèque similaire, mais uniquement pour le format word), alors c'est quelques lignes, et ici tout est assez concis:

Paragraph subparagraphHeaderOne = doc.addParagraph(“”);

Et si nous voulons affecter le texte à l'étape suivante, nous pouvons utiliser une construction similaire:

Paragraph subparagrafFilial = paragraphHeader.addParagraph(null);

Un exemple de création d'un paragraphe Apache poi:

XWPFParagraph paragraphHeader = xwpfDocument.createParagraph();
   XWPFRun subpargraphHeader = paragraphHeader.createRun();
        subpargraphHeader.setText(“”);
        subpargraphHeader.addBreak();

Personnellement, je suis fasciné par une telle concision, mais continuez.

Création de styles pour un paragraphe:

OdfOfficeStyles styles = doc.getOrCreateDocumentStyles ();
       OdfStyle style = styles.newStyle ( "Source Text", OdfStyleFamily.Paragraph );
          style.setProperty ( OdfParagraphProperties.VerticalAlign, "#middle");
          paragraph.getOdfElement().setStyleName("Source Text");

Mais il y a un petit problème, selon la documentation officielle, l'attribution de style se produit comme ceci:

paragraph.setStyleName("Source Text")

image

Mais malheureusement, cela ne fonctionne pas de cette façon, ce qui a coûté un certain nombre de cellules nerveuses et du temps pour trouver une solution.

Création d'une table:

Table TableOne = doc.addTable( , );

Il est possible de travailler avec des cellules à la fois en créant un nouveau paragraphe et directement avec la cellule elle-même

En créant un nouveau paragraphe:

Paragraph cellOne = Paragraph.newParagraph(subparagraphTableOne.getCellByPosition(0, 1));
 cellOne.appendTextContent("");

Directement avec une cellule:

Cell cellOne = subparagraphTableOne.getCellByPosition(0, 0);
 cellOne.setStringValue("")

Utilisation d'un style de tableau et de ses bordures:

Créez une bordure:

Border border= new Border(Color.WHITE, 2, StyleTypeDefinitions.SupportedLinearMeasure.PT);

La première variable est le choix de la bordure à laquelle le style sera appliqué:

table.getRowByIndex(0).getCellByIndex(1).setBorders(StyleTypeDefinitions.CellBordersType.BOTTOM, border);

Définissez le style de police:

Font font = new Font("Times New Roman", StyleTypeDefinitions.FontStyle.REGULAR, 12);

Je veux terminer cette brève revue, si le projet vous intéresse, alors le site Web du projet odftoolkit.org a un guide plus avancé pour travailler avec cette API.

J'espère que cet article aide quelqu'un à suivre la voie la plus simple.

All Articles