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")));
}
}
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();
}
}
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
Posta un commento