在做xls時,難免都會用到日期的時候~
因為個人不太喜歡預設的表示式,所以常常都故意寫出時用字串來表示~
不過~夜路走多了還是會碰到鬼一.一|||...
總之~整理一下xls上關於日期的用法~~
註明,這是poi 3.2的版本,因為在3.6後,使用的method有更動~我看用法是差不多,但是method取用的object改了~
在之前,首先要了解,日期在CELL裡的型別是 HSSFCell.CELL_TYPE_NUMERIC ,是數字型態。
而讓它在XLS上能正常以日期顯示是因為 DataFormat (儲存格格式)的關係,預設是 yyyy/m/d
read XLS Date:
HSSFCell cell = ....;
if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
Date st10 = readCellDate(cell);
}
write XLS Date:
先制定特定的CellStyle,不知道format字串的話,可以用XLS內的儲存格格式點開找範例跟試用~特別聲明民國年顯示用法為("[$-404]e/m/d")
cellDateROC = workbook.createCellStyle();
cellDateROC.cloneStyleFrom(cellBorderLeft);
cellDateROC.setDataFormat( workbook.createDataFormat().getFormat("[$-404]e/m/d"));
cellDate = workbook.createCellStyle();
cellDate.cloneStyleFrom(cellBorderLeft);
cellDate.setDataFormat( workbook.createDataFormat().getFormat("yyyy/m/d"));
產生XLS cell
cell.setCellStyle(cellDateROC());
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue( new Date() );
當初一定要寫成日期格式是因為,有公式要用到就只好認了@@~
沒有留言:
張貼留言