シリアル値の計算 その3 エクセル - java POI頼み 2014/02/16

前回の記事の検証
実際に、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()); } }

出力された結果をエクセルシートにはりつけてみると
右の列が、書式設定している



: