Creare file Microsoft Word .DOC e .DOCX con Apache POI

DOMANDA:

Posso creare in Java un file Microsoft Word .DOC o .DOCX?


RISPOSTA:

Certamente. In Java è possibile creare un file .doc o .docx, estensione che identifica un documento Word (rispettivamente versione fino al 97-2003 e dal 2007 in poi), grazie alle librerie POI di Apache (versione attuale 3.8).

Vediamo con un esempio basilare come creare un .DOC e un .DOCX con un paragrafo contenente una scritta:

package doc;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

public class CreaFileWord {

   private String nomeFile;

   public CreaFileWord(String nomeFile) {
      this.nomeFile = nomeFile;
   }

   public void creaDoc() throws FileNotFoundException, IOException {
      XWPFDocument doc = new XWPFDocument();
      XWPFParagraph paragrafo = doc.createParagraph();
      XWPFRun run = paragrafo.createRun(); // Il Run è una porzione di testo con le stesse caratteristiche
      run.setText("http://lancill.blogspot.it");
      run.setFontSize(20);
      doc.write(new FileOutputStream(new File(nomeFile + ".doc")));
      doc.write(new FileOutputStream(new File(nomeFile + ".docx")));
   }
}


Per far funzionare l'esempio sono necessari i seguenti jar, tutti disponibili nelle librerie Apache Poi versione 3.8, da importare, ovviamente, nel Build Path del nostro progetto:
- poi-3.8-xxxxxxxx.jar (al posto delle x c'è la data di rilascio)
- poi-ooxml-3.8-xxxxxxxx.jar
- poi-ooxml-schemas-3.8-xxxxxxxx.jar
- xmlbeans-2.3.0.jar
- dom4j-1.6.1.jar


La classe di Test:

package doc;

import java.io.FileNotFoundException;
import java.io.IOException;

public class TestWord {
   public static void main(String[] args) throws FileNotFoundException, IOException {
      CreaFileWord word = new CreaFileWord("C:\\ciao");
      word.creaDoc();
   }
}

Controllate nella directory "C:\", ci saranno due file, "ciao.doc" e "ciao.docx". 


Per gli approfondimenti su Apache POI vi rimando al sito ufficiale


Commenti

Post popolari in questo blog

Arrotondamento e troncamento in Java

Eclipse: Shortcuts (scorciatoie) da tastiera

Strutture dati: List, Set, Map

Creare un eseguibile Java