前不久写过一篇随笔《EXCEL解析之终极方法WorkbookFactory》,提到使用WorkbookFactory来处理Excel文件数据,最近发现一个问题就是这个办法不能很好的处理各种日期格式,比如下面这些:

那么如何将这些格式正确识别并输出呢?下面来分享一下解决方法。

其实答案已经在之前已经写过。需要回到之前比较笨重的那个办法,就是在读取单元格时对单元格中数据的种类做判断,再将数据做适当转换,POI将EXCEL数据分成以下几种类型:

CELL_TYPE_NUMERIC

CELL_TYPE_STRING

CELL_TYPE_BOOLEAN

CELL_TYPE_FORMULA

CELL_TYPE_BLANK

CELL_TYPE_ERROR

本次随笔内容主要讨论的是日期格式问题,所以要注意的是, 当type是numberic的时候,又分为数字格式和日期格式。

数字格式->如果是double类型就要读取double类型,如果是int则直接读取。使用getNumericCellValue读取数字类型。

日期格式->则需要使用POI提供的DataFormatter类的formatCellValue方法来读取日期类型单元格。

完美解决各种日期格式问题,包括中文格式日期。

运行结果如下:

提示:在判断单元格是否为日期时,由于是对XSSFcell和HSSFcell分开读取,使用的是HSSFDataUtil类的isCellDateFormatted方法,XSSFDataUtil类没有定义这个方法,进过分析POI jar包,发现它是继承于

org.apache.poi.ss.usermodel.DateUtil.isCellDateFormatted(Cell cell),于是直接使用绝对路径来指定方法,调试可以成功。

总觉得在脚本中使用这种绝对路劲比较难看,很不雅观,如果谁有更好的方法,欢迎分享,谢谢!!!

POI操作excel中的日期格式处理

转载:http://blog.csdn.net/fuxiaohui/article/details/6239925 7.3.3 POI中Excel文件Cell的类型 在读取每一个Cell的值的时候,通 ...

POI处理Excel中的日期数据类型

在POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理. 正确的处理方法是先判断单元格 的类型是否则NUMERIC类型, 然后再判断单元格是 ...

java通过poi读取excel中的日期类型数据或自定义类型日期

Java 读取Excel表格日期类型数据的时候,读出来的是这样的  12-十月-2019,而Excel中输入的是 2019/10/12 或 2019-10-12 poi处理excel时,当excel没 ...

[转]使用PHPExcel判别和格式化Excel中的日期格式

From : http://renzhen.iteye.com/blog/799391 最近,在做一个导入功能,在系统中使用PHPExcel类库,读取上传的Excel文件,然后进行字段映射,最后将Ex ...

python学习笔记(excel中处理日期格式)

涉及到处理excel文件中日期格式数据 这里自己整理下 两种方法 代码如下: @classmethod def get_time(cls, table, nrows): testtime = [] f ...

最近开发的项目,遇到用户上传excel文件并导入数据到系统这个需求,而有excel中有的单元格是日期格式,本文介绍怎么从excel中读取日期格式的数据。

可以先判断单元格的类型,有的日期是字符串存储的,有的是按日期存储的(单元格按数字解析),代码如下: Cell cell = row.getCell(); Date date = null; if (c ...

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

在Excel中的日期格式,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171.如果使用POI处理Excel中的日期类型的单元格时,如果仅仅是判 ...

利用POI获取Excel中图片和图片位置

利用POI获取Excel中图片和图片位置(支持excel2003or2007多sheet) 转自:http://blog.csdn.net/delongcpp/article/details/8833 ...

excel导入时候日期格式转成date

最近在做导入的时候发现,excel中设置数值格式是不能有日期的那些符号出现的,/ - : 之类的,否则就会变成数字到了java后台,设置成日期,比如 yyyy-mm-dd 到了后台也是数字,即距离19 ...

随机推荐

详解Maple中的基础工具栏

鉴于Maple 强大的符号计算功能,越来越多的人选择使用Maple 2015计算复杂的数学问题,初学者刚开始时需要对Maple有所熟悉才能很好地进行运用,下面就从基础开始,介绍Maple工作环境. M ...

Spring学习(一):理解IoC容器

序言 记得刚毕业那会儿,出来招工作被问到Spring的核心时,都觉得简单的一笔,直接说不就是IoC(控制反转)和DI(依赖注入)么,然后省略一万字对两个名词的解释.最近空来整理了一下Spring中Io ...

javaWeb2之Jsp

Java Server Page 放在除WEB-INF(放web项目的隐私文件)外的其他任何目录中. Java服务器端网页,实现在HTML页面编写Java代码实现动态内容,一种简化Servlet编写的 ...

server.xml引入子文件配置(tomcat虚拟主机)

在配置tomcat虚拟主机时候,如何每一个虚拟主机写成单独文件,server.xml包含这些子文件? 如以下中,添加JAVA环境虚拟主机后tomcat配置文件详情: ...

VS下.net开发常用扩展、配置

Vue.js Pack Copy As Html HTML Tools Word Highlight With Margin 绿豆沙颜色:R:199  G:237  U:204

C++学习(十四)(C语言部分)之 数组

上期回顾:三大循环 for while do while (循环体至少会执行一次)四大跳转 goto continue(提前跳出当前循环 进入下一个循环) break(跳出本次循环) return(跳 ...

1.Java基础概念.md

类 •类是Java的最小程序单位,所有程序必须放到类里. •Java中只可以有一个public类,且源文件名称必须和public类名称一致(建议) •Java的main方法: public stati ...

233 Matrix(hdu5015 矩阵)

233 Matrix Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

使用webpack配置react并添加到flask应用

学习react,配置是很痛苦的一关,虽然现在有了create-react-app这样方便的工具,但是必须要自己配置一遍,才能更好地进行项目开发. 首先要明确一个概念:react的文件必须经过编译才能被 ...

Oracle——序列、索引、同义词

一.常见的数据库对象 二.序列 序列: 可供多个用户用来产生唯一数值的数据库对象 自动提供唯一的数值 共享对象 主要用于提供主键值 将序列值装入内存可以提高访问效率 ①.创建序列 CREATE SEQ ...

poi导入excel日期处理_POI处理Excel中各种日期格式问题相关推荐

  1. java导出excel 边框不全_POI 导出Excel合并单元格后部分边框不显示

    用户需要导出自定义表格,其中合并单元格样式遇到的问题,合并后只显示第一行第一列的边框,其他边框不显示,于是遍查百度,寻到一点思路 ①了解Excel绘制原理 ②了解绘制Excel顺序 ③绘制Excel单 ...

  2. vue2.0 使用xlsx读取excel文件数据 操作流程 以及文件中特殊日期数据的处理

    1. 安装xlsx依赖 cnpm install xlsx --save 2.需要处理的文件 这里有一个转换中经常会遇见的问题,就是带有反斜杠的日期数据被转换成了一串数字,在接下来的演示中提供了我现在 ...

  3. Excel怎么快速删除工作表中的条件格式

    今天跟大家分享一下Excel怎么删除表格中的条件格式. 1.如下图表格中含有部分条件格式,现在我们想要将工作表中的条件格式快速删除掉. 2.首先我们点击下图选项(Excel工具箱,百度即可了解详细下载 ...

  4. dorado 中的日期--》oracle中的日期

    一.在类中得到dorado 中的VIEW,根据VIEW取得dataset,将dataset中Date列取出来,存到oracle中的Date列: SimpleDateFormat dateFormat ...

  5. ruby 将日期转化为时间_Ruby中的日期和时间类

    ruby 将日期转化为时间 Ruby数据和时间类 (Ruby Data and Time Classes) In any program written in any language, at any ...

  6. SQL获得当前的日期和时间与DB2 中操作日期和时间

    星期六 2007年08月18日 要使用 SQL 获得当前的日期.时间及时间戳记,请参考适当的 DB2 寄存器: SELECT current date FROM sysibm.sysdummy1 SE ...

  7. JavaScript 日期比较——如何在 JS 中比较日期

    日期是开发人员在创建实际应用程序时最常用的数据类型之一. 但通常,开发人员会在这种数据类型上苦苦挣扎,最终使用像 Moment.js 这样的日期库来完成简单的任务,这些任务不值得安装整个包所带来的大包 ...

  8. poi导入excel日期处理_poi解析excel读取日期为数字的问题

    Apache poi 版本:3.12 今天在用poi解析excel文件时,碰到一个蛋疼的问题. 在我的excel文件中有一列是日期类型,例如有以下这么一行数据(日期中月份前面的0会自动去掉): 在读取 ...

  9. poi导出数据文件名错误_POI导出Excel报错“扩展名与文件的格式不匹配”

    下面是我用POI导出Excel的实例: 依赖的jar包 org.apache.poi poi 4.0.1 工具类 public class ExportExcel { // 显示的导出表的标题 pri ...

最新文章

  1. Keepalived配置文件
  2. Ubuntu安装OMNet++及各种问题
  3. Passing the Message(HDU-3410)
  4. CallBack函数 回调函数
  5. Windows2003开机后进不了系统
  6. 04---Net基础加强
  7. mysql pheonix hbase,mybatis连接phoenix操作hbase
  8. Linux内核--网络栈实现分析(一)--网络栈初始化
  9. 微软Outlook邮箱绑定域名邮箱教程自定义方法
  10. 在plc中用c语言实现电梯控制程序,基于PLC的电梯控制系统的设计与实现[论文+答辩ppt+完整程序代码]...
  11. 苹果手机上编辑html文件夹,苹果手机可以编辑EXCEL文件吗
  12. 使用国外服务器的注意事项
  13. TGRS2021:Road Segmentation for Remote Sensing ImagesUsing Adversarial Spatial Pyrami对抗性空间金字塔网络的道路分割
  14. 鸿蒙调出安卓10彩蛋,暂时忘记鸿蒙!华为 EMUI 10.0 发布时间确认:这才是主角...
  15. css实现图片自动渐变切换、element-plus 的修改el-table的(边框线为虚线、表头样式)
  16. 【电机】使用Simulink建立BLDC反电动势测量的简单模型
  17. python打印Excel文件方法
  18. Linux 缓存释放和管理
  19. 泛微E9IDEA开发环境配置非maven篇
  20. Linux应用程序开发笔记:nanopi-m4(rk3399)camera isp(附OV4689 4-lane-MIPI驱动,支持1080p@120fps)

热门文章

  1. Github 上的个人项目开源心得
  2. 走进JavaWeb技术世界3:JDBC的进化与连接池技术
  3. 台湾大学神经网络架构设计
  4. [日程管理][Android]91todo日程任务管理
  5. R3300L Android相关的记录
  6. C++/QT生成二维码和扫瞄二维码
  7. 程序员相亲 满屏尴尬
  8. LAB002 -Oracle数据库手工冷备份(归档模式)
  9. Java锁--共享锁和ReentrantReadWriteLock
  10. Openstack中使用iso安装系统并启动vm