Crab2died/Excel4J

不支持日期读取,不支持数字和日期格式输出

Opened this issue · 0 comments

当“单元格格式”为“日期”或者“自定义”里面的日期格式时,对于2016年的某一天,使用String类型接收会接收成“42373.700787037“这种格式字符串,若使用java.util.Date接收则会报异常:

com.github.exceptions.TimeMatchFormatException: [42373.700787037] can not matching right time format
	at com.github.utils.DateUtils.str2Date(DateUtils.java:165)
	at com.github.utils.DateUtils.str2DateUnmatch2Null(DateUtils.java:187)
	at com.github.utils.Utils.str2TargetClass(Utils.java:146)
	at com.github.ExcelUtils.readExcel2ObjectsHandler(ExcelUtils.java:97)
	at com.github.ExcelUtils.readExcel2Objects(ExcelUtils.java:47)
	at com.github.ExcelUtils.readExcel2Objects(ExcelUtils.java:63)
	at base.Test.readExcel(Test.java:49)
	at base.Test$1.run(Test.java:29)

同样,当输出java.util.Date格式时,会输出成“Mon Jul 24 15:32:29 CST 2017”这种字符串格式,无法在Excel中转换成正常的日期格式

除了Date会被转换成字符串输出意外,所有的数字也会以字符串输出,最可怕的是对于java.lang.Float的100000000.00会直接输出成字符串“1.0E8”,并且通过Office所有版本Excel均无法通过设置单元格格式转换成数字格式。同理int,long,double等转换为字符串之后无法在Excel进行求和等数字运算