シリアル値の計算 その3 エクセル - java POI頼み
2014/02/16 
 java
poi
エクセル
シリアル値
java
poi
エクセル
シリアル値
前回の記事の検証
実際に、org.apache.poi.ss.usermodel.DateUtilを使ってみる。
今回試したコード
package poi;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.apache.poi.ss.usermodel.DateUtil;
public class TestSerial2 {
    public static void main(String[] args) {
        a();
    }
    static void a() {
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy/MM/dd");
        SimpleDateFormat format2 = new SimpleDateFormat("yyyy年MM月dd");
        Calendar c = Calendar.getInstance();
        c.set(1900, 0, 1);// 月は0スタート
        // とりあえず9000日
        for (int i = 0; i < 9000; i++) {
            Date date = c.getTime();
            System.out.printf("%s\t%s\t%f%n", format1.format(date),
                    format2.format(date), toExcelSerial(c));
            c.add(Calendar.DATE, 1);
        }
    }
    /**
     * excelで使用するシリアル値に変換します。
     * 
     * @param c
     * @return
     */
    static double toExcelSerial(Calendar c) {
        return DateUtil.getExcelDate(c.getTime());
    }
}
出力された結果をエクセルシートにはりつけてみると
右の列が、書式設定している

: