/ / Създаване на Word файл с POI - java, apache, ms-word, apache-poi

Създайте Word файл, използвайки POI - java, apache, ms-word, apache-poi

Моето изискване е да чета файл с шаблон и да променя някои стойности в неговото съдържание и да го запиша обратно в друг файл. Най-важното е, че той трябва да има същите стилове като този на шаблона.

Проблемът, с който се сблъсквам, е, че мога да чета инапишете, но е много трудно да прехвърлите стиловете. Особено съм уморен да се опитвам да прилагам стила на параграфа към документа. Pls да ми помогне ..... това е моят код

  public static void main(String[] args) {
try {
HWPFDocument templateFile = new HWPFDocument(new FileInputStream("D:\POI\testPOIin.doc"));
HWPFDocument blankFile = new HWPFDocument(new FileInputStream("D:\POI\blank.doc"));

ParagraphProperties pp = templateFile.getRange().getParagraph(4).cloneProperties();
blankFile.getRange().insertAfter(pp, 0);
OutputStream out = new FileOutputStream("D:\POI\testPOIout.doc");
blankFile.write(out);

} catch (FileNotFoundException fnfe) {
// TODO: Add catch code
fnfe.printStackTrace();
} catch (Exception ioe) {
// TODO: Add catch code
ioe.printStackTrace();
}
}
}

Моля, уведомете ме, че върша погрешно .....

Отговори:

0 за отговор № 1

Също така имах подобна задача и след разследване създадох решение, но работи само за docx файлове:

public static void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream(new File("transformed.docx"));
XWPFDocument doc = new XWPFDocument(new FileInputStream(new File("original.docx")));
for(XWPFParagraph p:doc.getParagraphs()){
for(XWPFRun r:p.getRuns()){
for(CTText ct:r.getCTR().getTList()){
String str = ct.getStringValue();
if(str.contains("NAME")){
str = str.replace("NAME", "Java Dev");
ct.setStringValue(str);
}
}
}
}
doc.write(fos);
}

той работи на ниско ниво елементи, така че спестява стилове и други подпори. Надявам се, че ще помогне на някой.