HSSFWORKBOOK关于时间类型导入导出问题处理

本文介绍了使用HSSFWORKBOOK处理数据库与Excel数据交互时遇到的Date类型问题及解决方案。在处理入库时间和修改时间字段时,通过设置特定时间格式,避免了因用户输入格式不一致导致的导入异常。解决方案包括设置单元格样式以规范时间格式,并使用getDateCellValue()处理时间数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         这两天用HSSFWORKBOOK处理对数据库中数据与exce相互导入导出时,发现对于数据库中Date类型的处理还是有点麻烦的,我在这个过程从刚开始有问题到现在可以良好实现,总结了自己的解决方案,分享给各位遇到同样问题的同学,有不足之处,欢迎拍砖。

         现在我有一个实体类Company(公司)

     大家看到,此相关数据库设计时,入库时间,修改时间,备注是null,其余字段均为not  null ,这也是产生我之后遇到问题的原因,后面会给大家讲到。

     我们看到入库时间,修改时间都是Date类型,Date类型一般都是很恶心的,大家懂。

     刚刚提到,入库时间,修改时间,备注都是null的,那么意味着用户在处理这些字段的输入时,可以输入,也可以不输入。如果输入的话,就没什么问题了,相反,如果不输入,问题就出现了,当把excel文件导入数据库时,就可能会报NullPointException异常。如下图为业务需求操作界面:

   

相关代码:

一、初始解决方案:

        将excel中输入的时间看为String类型

1.importFile类:

                // 入库时间
                if(!StringUtil.isNullOrEmpty(row.getCell(6))){
                    row.getCell(6).setCellType(Cell.CELL_TYPE_STRING);
                    company.setCreateTime(sdf.parse(row.getCell(6).getStringCellValue().trim()));
                }
                //修改时间
                if(!StringUtil.isNullOrEmpty(row.getCell(7))){
                    row.getCell(7).setCellType(Cell.CELL_TYPE_STRING);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值