POI读取Excel内容格式化
生活随笔
收集整理的這篇文章主要介紹了
POI读取Excel内容格式化
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在用POI讀取Excel內(nèi)容時,經(jīng)常會遇到數(shù)據(jù)格式化的問題.
比如:數(shù)字12365會變?yōu)?2365.0;字符串?dāng)?shù)字123也會變?yōu)?23.0,甚至?xí)蛔優(yōu)榭茖W(xué)計數(shù)法.另外日期格式化也是一個頭疼的問題.其實最希望的方式是Excel是什么,那POI取出來就是什么,不要搞任何轉(zhuǎn)換.
網(wǎng)上搜羅各種格式化方式后,找到最滿意的一種:
import org.apache.poi.hssf.usermodel.HSSFDataFormatter; import org.apache.poi.hssf.usermodel.HSSFDateUtil;public Object getValue(Cell cell) {if (cell == null)return "";//如果是日期類型(POI會把日期轉(zhuǎn)數(shù)字)if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) {//Check if a cell contains a dateif (HSSFDateUtil.isCellDateFormatted(cell)) {Date d = HSSFDateUtil.getJavaDate(cell.getNumericCellValue());return new SimpleDateFormat("yyyy-MM-dd").format(d);}}//如果是中文類型的日期(轉(zhuǎn)為xxxx-xx-xx格式)
// m月d日 :dataFormat=58,dataFormatString=reserved-0x1c
//yyyy年m月d日 :dataFormat=31,dataFormatString=reserved-0x1f
if (cell.getCellStyle().getDataFormat() == 58 || cell.getCellStyle().getDataFormat() == 31)
return DateUtil.date2string(cell.getDateCellValue(), DateUtil.YYYY_MM_DD); HSSFDataFormatter df = new HSSFDataFormatter(); return df.formatCellValue(cell); }
這樣,拿到的數(shù)據(jù)就都是原來的樣子了
?
轉(zhuǎn)載于:https://www.cnblogs.com/KeepYongth/p/6232106.html
總結(jié)
以上是生活随笔為你收集整理的POI读取Excel内容格式化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows下使用ffmpeg进行视频
- 下一篇: 记录cocos2d-x3.0版本号更改内