Java处理Excel中的日期格式

Java处理Excel中的日期格式

2011-12-23 17:34:03|  分类: java |举报 |字号 订阅

下载LOFTER 我的照片书  |

在Excel中的日期格式,其数值为距离1900年1月1日的天数,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171。
在POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理。正确的处理方法是先判断单元格的类型是否则NUMERIC类型,然后再判断单元格是否为日期格式,如果是的话,

创建一个日期格式,再将单元格的内容以这个日期格式显示出来。如果单元格不是日期格式,那么则直接得到NUMERIC的值就行了。具体代码如下:

if (0 == cell.getCellType()) {

//判断是否为日期类型

if(HSSFDateUtil.isCellDateFormatted(cell)){
//用于转化为日期格式

Date d = cell.getDateCellValue();

DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");

str[k] = formater.format(d);

}else{

// 用于格式化数字,只保留数字的整数部分

DecimalFormat df = new DecimalFormat("########");

str[k] = df.format(cell.getNumericCellValue());

}

时间: 11-15

Java处理Excel中的日期格式的相关文章

java导入excel时处理日期格式(已验证ok)

在Excel中的日期格式,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171.如果使用POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理.正确的处理方法是先判断单元格的类型是否则NUMERIC类型,然后再判断单元格是否为日期格式,如果是的话, 创建一个日期格式,再将单元格的内容以这个日期格式显示出来.如果单元格不是日期格式,那么则直接得到NUMERIC的值就行了.具体代码如下:

POI处理Excel中各种日期格式问题

前不久写过一篇随笔<EXCEL解析之终极方法WorkbookFactory>,提到使用WorkbookFactory来处理Excel文件数据,最近发现一个问题就是这个办法不能很好的处理各种日期格式,比如下面这些: 那么如何将这些格式正确识别并输出呢?下面来分享一下解决方法. 其实答案已经在之前已经写过.需要回到之前比较笨重的那个办法,就是在读取单元格时对单元格中数据的种类做判断,再将数据做适当转换,POI将EXCEL数据分成以下几种类型: CELL_TYPE_NUMERIC CELL_TYPE

excel中转换日期格式

在EXCEL使用TEXT函数就可以做到转换日期格式的效果. 例如A1中为32768,在B1中输入公式: =TEXT(A1,"yyyy-mm-dd") B1中则会显示1989-09-17,这里的[yyyy-mm-dd]是指让前一个参数(A1)中的数值以[四位年份-两位月份-两位日子]来显示的(当月份和日子不足两位时,前面自动补0). 这里的[yyyy-mm-dd]也可以修改为别的格式,例如这里的日期中年份想要显示为2位,可以写成[yy-mm-dd]:或者是月份的09想显示为9,可以相应减

Java与C#间json日期格式互转完美解决方案

http://blog.csdn.net/wilsonke/article/details/24362851 作用一种简单方便的数据传输方案,JSON已经成为替代XML的事实标准.然而在JSON中,时间(DateTime,Timestamp,Date等)格式一直没有很好地统一,当需要跨平台序列化/反序列化时,遇到不少麻烦.作者经过反复尝试,解决了C#与Java通过JSON进行时间传输的困难.C#解析Java/Javascript生成的JSON并不困难,但Java解析C#生成的JSON困难重重.下

项目总结2--Oracle中时间日期格式

在Oracle中,方法没有SQL Server那么多 一 转换方法to_date() :作用将字符类型按一定格式转化为日期类型: to_date('2004-11-27 13:34:43', 'yyyy-mm-dd hh24:mi:ss') to_char():转换成字符串类型,如:To_char(1234.5, '$9999.9'),结果:$1234.5 to_number() :转换成数值类型,如:To_number('1234.5'),结果:1234.5 Oracle的to_date()方

Java向Excel中插入图片

Java向Excel中插入图片 import java.io.FileOutputStream; import java.io.File; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.awt.image.BufferedImage; import javax.imageio.*; import org.apache.poi.hssf.usermodel.HSSFWorkbook; im

js中转化日期格式

format =function(date){ var value=""; var reDate="/\d{4}-\d{2}-\d{2}/gi"; value=date.match(reDate) var  arr=new Array(); arr=value.split("-"); value=arr[0]+"年"+arr[1]+"月"+arr[2]+"/日" return value

JAVA将Excel中的报表导出为图片格式(三)换一种实现

上一篇介绍了使用Java的Robot机器人实现截图,然后将剪贴板上的数据流生成PNG图片 但是经过博主的不断测试,在完全依赖远程桌面的没有终端显示器的服务器上 使用截图方式是不可行的,因为一旦使用了远程桌面,再断开桌面,系统后台执行的截图程序会全部截到黑屏 所以博主不得已去用另一种通用方式生成PNG 这就是要使用Apache公司的POI工具,对整个excel进行解析 将excel的每一个单元格,数据,格式,边框全都读取出来 其中需要考虑到单元格的合并,行列的隐藏等等复杂的问题 最终使用JAVA

在java中如何处理日期格式问题

1.最简洁的办法就是在对应的对象中加注解 如下一个例子: @DateTimeFormat(pattern="yyyy-MM-dd") @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8") private Date valueDate; 注意:timezone = "GMT+8"一定要加,不然会少一天 如果你的字段是一个日期格式,就如上定义,但是如果使用的是Mybatis,在M