シリアル値の計算 その3 エクセル - java POI頼み
2014/02/16
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());
}
}
出力された結果をエクセルシートにはりつけてみると
右の列が、書式設定している
: