Java sample code 03

##[SAMPLE GALLERY](http://blueplace.sakura.ne.jp/index.html)に掲載されたソースを疎通してimport文も付けました。
#3.java poi Word
##poiのjarファイルをダウンロード必要
- install(https://poi.apache.org/)
- Wordファイルの作成
- Wordファイルに文字を書く
- 文字を太字にする
- 文字をイタリックにする
- 文字に下線を引く
- 文字の色を設定
- タブを付ける
- 取消線を付ける
- 二重取消線を付ける
- フォントサイズを指定する
- フォントを指定する
- 改行を入れる

##3.java poi Word
####3-0.download&install
下記のサイトからダウンロードしたbinファイルから、「*.jar」ファイルをProjectにコピーする  
https://poi.apache.org/  
https://xmlbeans.apache.org/download/  
- サブコンポーネント
  - POIFS (Poor Obfuscation Implementation File System)
  - HSSF (Horrible SpreadSheet Format) - Microsoft Excel (XLS) 形式のファイルを扱う。
  - XSSF (XML SpreadSheet Format) - Office Open XML Workbook形式のファイルを扱う。
  - HWPF (Horrible Word Processor Format) - Microsoft Word (DOC) 形式のファイルを扱う。
  - XWPF (XML Word Processor Format) - Office Open XML Document形式のファイルを扱う。
  - HSLF (Horrible Slide Layout Format) - Microsoft PowerPoint (PPT) 形式のファイルを扱う。
  - XSLF (XML Slide Layout Format) - Office Open XML Presentation形式のファイルを扱う。
  - HPSF (Horrible Property Set Format) - Microsoft Officeのドキュメントサマリーを読むコンポーネント。
  - HDGF (Horrible DiaGram Format) - Microsoft Visio形式のファイルを扱う。
  - HPBF (Horrible PuBlisher Format) - Microsoft Publisher形式のファイルを扱う。
  - HSMF (Horrible Stupid Mail Format) - Microsoft Outlook (MSG) 形式のファイルを扱う。
 
####3-1.Wordファイルの作成
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile.docx");
            XWPFDocument wordFile = new XWPFDocument();
            wordFile.write(os);//ここでワードファイルを作成しています。
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```    
####3-2.Wordファイルに文字を書く
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile2.docx");
            XWPFDocument wordFile = new XWPFDocument();
            XWPFParagraph paragraph = wordFile.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("あいうえお");//ここで文字を書いています。
            run.setText("かきくけこ");
            wordFile.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```    
####3-3.文字を太字にする
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile.docx");
            XWPFDocument wordFile = new XWPFDocument();
            XWPFParagraph paragraph = wordFile.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("あいうえお");
            run.setBold(true);//ここで太字にしています。
            wordFile.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```    
####3-4.文字をイタリックにする
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile.docx");
            XWPFDocument wordFile = new XWPFDocument();
            XWPFParagraph paragraph = wordFile.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("あいうえお");
            run.setItalic(true);//ここでイタリックにしています。
            wordFile.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```    
####3-5.文字に下線を引く
```java
import org.apache.poi.xwpf.usermodel.UnderlinePatterns;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile.docx");
            XWPFDocument wordFile = new XWPFDocument();
            XWPFParagraph paragraph = wordFile.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("あいうえお");
            run.setUnderline(UnderlinePatterns.DOUBLE);//ここで下線を引いています。下線の種類は「UnderlinePatterns」のクラスで選択できます。
            wordFile.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```    
####3-6.文字の色を設定
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile.docx");
            XWPFDocument wordFile = new XWPFDocument();
            XWPFParagraph paragraph = wordFile.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("あいうえお");
            run.setColor("FF0000");//ここで文字の色を指定しています。16進数。「RRGGBB」。
            wordFile.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```    
####3-7.タブを付ける
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile.docx");
            XWPFDocument wordFile = new XWPFDocument();
            XWPFParagraph paragraph = wordFile.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.addTab();//ここでタブを付けています。
            run.setText("あいうえお");
            wordFile.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```    
####3-8.取消線を付ける
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile.docx");
            XWPFDocument wordFile = new XWPFDocument();
            XWPFParagraph paragraph = wordFile.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("あいうえお");
            run.setStrikeThrough(true);//ここで取消線を付けています。
            wordFile.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```    
####3-9.二重取消線を付ける
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile.docx");
            XWPFDocument wordFile = new XWPFDocument();
            XWPFParagraph paragraph = wordFile.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("あいうえお");
            run.setDoubleStrikethrough(true);//ここで二重取消線を付けています。
            wordFile.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```    
####3-10.フォントサイズを指定する
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile.docx");
            XWPFDocument wordFile = new XWPFDocument();
            XWPFParagraph paragraph = wordFile.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("あいうえお");
            run.setFontSize(20);//ここでフォントのサイズを変更しています。
            wordFile.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```    
####3-11.フォントを指定する
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile.docx");
            XWPFDocument wordFile = new XWPFDocument();
            XWPFParagraph paragraph = wordFile.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("Hello World.");
            run.setFontFamily("Times New Roman");//ここでフォントを指定しています。
            run.addCarriageReturn();
            run = paragraph.createRun();
            run.setText("Hello World.");
            run.setFontFamily("ＭＳ ゴシック");//ここでフォントを指定しています。
            wordFile.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```    
####3-12.改行を入れる
```java
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class SamplePoi {

    public static void main(String[] args) throws IOException {
        OutputStream os = null;
        try {
            os = new FileOutputStream("TestWordFile.docx");
            XWPFDocument wordFile = new XWPFDocument();
            XWPFParagraph paragraph = wordFile.createParagraph();
            XWPFRun run = paragraph.createRun();
            run.setText("Hello World.");
            run.addCarriageReturn();//ここで改行を入れています。
            run.setText("Hello World.");
            wordFile.write(os);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (os != null) {
                os.close();
            }
        }
    }

}
```