今天上班的大半时间就在解决这个了。用户反映日期无法group,我和同事看了并分析了下,首先确认是因为导出到excel类型不是date类型。具体截图如下:
这里类型为Custom,而不为Date类型。但我明明设格式为dd/mm/yyyy,显示上也没有问题,但为啥是custom类型呢?
其实我也搞不明白,所以就npoi官网上,找到项目的git地址,查看源码中的示例(examples),找到了如下代码:
然后就反映过来了,哈哈,人家用的是m/d/yy,于是改后,就ok了,就成了date类型。
到此以为就万事大吉的朋友就要小心了,可能现实并不是这么回事。我发现转成date类型后,group还是不行,why?
原来我写入的时间顺序还是d/m/yy,但我调用format代码,用的是m/d/yy,所以当我日期出现28这样明显不是月数的数字后,excel本身就识别这是有错误的,但是它不会提示,但会导致group失败。本来以为简简单单的把format的规则改成d/m/yy就可以了,但发现,这样的规则不能被excel识别为标准类型,会标记为custom类型,我想这可能和西方国家的标准时间格式有关吧。所以我就把自己的时间的m和d换了下位置。
至此,才完成了相关开发。代码如下:
当然,也有老司机的提醒,发给我git地址,虽然之前看过,但没仔细看。
说实话,npoi还不错的,至少对于要求不是很复杂的来说足够了。可以数据格式、样式,而且非常简单。