DOCX

2016-03-30 16 views
0

'da POI kullanılarak hücrenin üst kısmından nasıl yazılır? İki adet bir docx dosyası okuyorum ve birincisinin tablo hücresindeki metni, ikincisinden bir metinle değiştiriyorum. Değiştirilecek olan hücrelerde bir işaret bulunur ([# indicator #]). Metin, işaretleyicinin mevcut olduğu tablo hücresinde yazılacaktır. Benim sorunum, yazının sonunda her zaman hücrenin başında boş bir alan olmasıdır. Resimde empty space at top "Rechnerische Ergebnisse:" kelimesinin üzerinde. Hücrenin başında nasıl yazabilirim veya boş alanı nasıl kaldırabilirim? İçeriğini değiştirmeye çalıştığınızda, bu şekilde paragraf çıkarmayın A XWPFParagraph bir veya birden fazla XWPFRun örneklerini oluşurDOCX

private void insertText(final XWPFDocument docxErsetzt) throws FileNotFoundException, IOException { 
    FileInputStream fis = new FileInputStream("src\\main\\resources\\WordTemplate\\text.docx"); 
    XWPFDocument textInhalt = new XWPFDocument(fis); 
    List<XWPFParagraph> paragraphsInhat = textInhalt.getParagraphs(); 
    List<XWPFTable> table = docxErsetzt.getTables(); 
    for (XWPFTable xwpfTable : table) { 
     List<XWPFTableRow> row = xwpfTable.getRows(); 
     for (XWPFTableRow xwpfTableRow : row) { 
      List<XWPFTableCell> cell = xwpfTableRow.getTableCells(); 
      for (XWPFTableCell c : cell) { 
       if (c.getText().contains("[#indicator#]")) { 
        // remove [#indicator#] 
        c.removeParagraph(0); 
        for (XWPFParagraph para : paragraphsInhat) { 
         XWPFRun newRun = c.addParagraph().createRun(); 
         newRun.removeBreak(); 
         newRun.removeCarriageReturn(); 
         newRun.setText(para.getText(), 0); 

         for (XWPFRun run : para.getRuns()) { 
          String textInRun = run.getText(0); 
          if (textInRun == null || textInRun.isEmpty()) { 
           continue; 
          } 
          newRun.setFontSize(run.getFontSize()); 
          newRun.setFontFamily(run.getFontFamily()); 
          newRun.setBold(run.isBold()); 
          newRun.setItalic(run.isItalic()); 
          newRun.setStrikeThrough(run.isStrikeThrough()); 
          newRun.setUnderline(run.getUnderline()); 
          newRun.setColor(run.getColor()); 
         } 
        } 
       } 
      } 
     } 
    } 
    docxErsetzt.write(new FileOutputStream(OUTPUTPATH + "textreplaced.docx")); 
    docxErsetzt.close(); 
    textInhalt.close(); 
} 

cevap

2

,:

public void changeText(XWPFParagraph p, String newText) { 
    List<XWPFRun> runs = p.getRuns(); 
    for(int i = runs.size() - 1; i > 0; i--) { 
     p.removeRun(i); 
    } 
    XWPFRun run = runs.get(0); 
    run.setText(newText, 0); 
} 
+0

çıkarmadan yapmaz İşte kodudur Bir paragraf kendi çalışmalarını da kaldırır? – Iman

+1

@Iman A paragrafında, görünümünüzü etkileyecek çok fazla stil bilgisi var –

İlgili konular