2016-12-01 3 views
3

Javaを使用してdoc形式のdocx形式ファイルでJavaを使用してテキストを検索して置換したいと考えています。docとdocxの両方のワードファイル内のテキストの検索と置換方法

私が試したこと:これらのファイルをテキストファイルとして読み込もうとしましたが、成功しませんでした。

私はどのように進めるか、他に何を試していいのかわかりません、誰かが私に方向を教えてくれますか?

+1

DOC形式の完全なApacheのPOIを読むことをお勧めしますapache.poi を使用して交換するDOCXのためにそれを書かれています。あなたが試したことを私たちに示してください、[MCVE]を同封して、[FAQ]を読んでください。 – t0mm13b

+1

ファイルを読むためにapache poiの単語を試してください – XtremeBaumer

答えて

1

これは私の友人にあなたの問題を解決することを望みます。私は、検索およびテキスト形式と同じではありません、私はあなたがより

public class Find_Replace_DOCX { 

    public static void main(String args[]) throws IOException, 
     InvalidFormatException, 
     org.apache.poi.openxml4j.exceptions.InvalidFormatException { 
     try { 

     /** 
     * if uploaded doc then use HWPF else if uploaded Docx file use 
     * XWPFDocument 
     */ 
     XWPFDocument doc = new XWPFDocument(
     OPCPackage.open("d:\\1\\rpt.docx")); 
     for (XWPFParagraph p : doc.getParagraphs()) { 
     List<XWPFRun> runs = p.getRuns(); 
     if (runs != null) { 
     for (XWPFRun r : runs) { 
      String text = r.getText(0); 
      if (text != null && text.contains("$$key$$")) { 
      text = text.replace("$$key$$", "ABCD");//your content 
      r.setText(text, 0); 
      } 
     } 
     } 
     } 

     for (XWPFTable tbl : doc.getTables()) { 
     for (XWPFTableRow row : tbl.getRows()) { 
     for (XWPFTableCell cell : row.getTableCells()) { 
      for (XWPFParagraph p : cell.getParagraphs()) { 
      for (XWPFRun r : p.getRuns()) { 
      String text = r.getText(0); 
      if (text != null && text.contains("$$key$$")) { 
      text = text.replace("$$key$$", "abcd"); 
      r.setText(text, 0); 
      } 
      } 
      } 
     } 
     } 
     } 

     doc.write(new FileOutputStream("d:\\1\\output.docx")); 
     } finally { 

     } 

    } 

    } 
+0

完璧な作業をしたいのとまったく同じように動作しました。 –

+1

コメントや説明が必要です。しかし、私はこのインデントが好きです! – AxelH

+0

https://poi.apache.org/からの知識でした。前に読むことを強くお勧めします。 –

4

これらの文書形式は、ほとんどの場合、自分自身を解析しようとは思わない複雑なオブジェクトです。私は強くあなたはapache poiライブラリを見てみることをお勧めします - これらのライブラリは、docとdocx形式を読み込んで保存し、ファイルの内容にアクセスして変更する手段を持っています。

これらはよく文書化されており、現在オープンソースとして管理されており、自由に利用できます。

要約:a)ファイルを読み込みます。b)プログラムでファイルの内容を調べ、必要に応じて変更します(つまり、検索と置換を行います)。c)ディスクに保存し直します。

関連する問題