2016-05-04 48 views
-1

私の問題は、以下で作成したWriteメソッドを中心に展開されていると思います。複数の段落/行を作成するには?

私はApache POI Word(v3.15)を初めて使いましたが、使用方法を学ぶにはTutorialsPoint.comチュートリアルを使用していますが、オンラインマニュアルはほとんどありません。
ドキュメントをクラスに作成する基本機能のいくつかをロールオーバーして、冗長コードの作成を簡素化し、ドキュメントを簡単に作成したいと考えています。しかし、別々に書かれているか、以下のWriteメソッドの中にあるかにかかわらず、同じ出力ストリームに対する2番目の段落を作成しようとすると、私のコードが失敗します。だから私は同じストリームを参照するのを保持する方法がわからないが、複数の段落や行を書くことはできないのだろうか?

org.apache.poi.openxml4j.exceptions.OpenXML4JException::私は常に受信エラーは、このある部分をストリームに保存することに失敗し/docProps/app.xml ... "

MSWordクラス:

public class MSWord { 
    private String path = ""; 
    public XWPFDocument Document = null; 
    public FileOutputStream wordStream = null; 

    public String getPath() { 
     return path; 
    } 

    public MSWord(String path) { 
     this.path = path; 
     try { 
      WordApplication(path); 
      CreateWordDocument(); 
     } catch(IOException e) { 
      System.out.println("Error creating Word Document."); 
     } 
    } 

    private void WordApplication(String path) throws IOException { 
     wordStream = new FileOutputStream(path); 
    } 

    private void CreateWordDocument() { 
     this.Document = new XWPFDocument(); 
    } 

    public void Write(String copy) { 
     XWPFParagraph paragraph = null; 
     XWPFRun run = null; 
     try { 
      paragraph = this.Document.createParagraph(); 
      run = paragraph.createRun(); 
      run.setText(copy); 
      this.Document.write(this.wordStream); 
     } catch(IOException e) { 
      System.out.println("Failed to write"); 
     } 
    } 
} 

MainWord呼び出し元のクラス:

誰でも気軽追加する何かを持っている場合は0
public class MainWord { 
    public static void main(String[] args) throws Exception { 
     MSWord doc = new MSWord("C:/users/scott/Desktop/doc.docx"); 
     doc.Write("First line."); 
     doc.Write("Second line."); 
     doc.Write("Third line."); 
     doc.wordStream.close(); 
    } 
} 
+0

[編集]の代わりにすることで、あなたのオリジナルのポストを修正し、重複した質問を投稿しないでください。 – Deduplicator

答えて

0

...

は、私は自分の質問に答えているかもしれないと思います。次の行をMSWordクラスの "Write"メソッドから移動し、 "MainWord"クラスからの呼び出しとして移動したとき、それは機能しました。どうやら、あなたは最後に "書く"だけで、文書を閉じます。

MainWordクラスに移動さ
this.Document.write(this.wordStream); 

public class MainWord { 

public static void main(String[] args) throws Exception { 

    MSWord ITSM = new MSWord("C:/users/o519731/Desktop/ITSM.docx"); 

    ITSM.Write("First line."); 
    ITSM.Write("Second line."); 
    ITSM.Write("Third line."); 

    ITSM.Document.write(ITSM.wordStream); 
    ITSM.wordStream.close(); 

} 

}

関連する問題