今天上班的大半时间就在解决这个了。用户反映日期无法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还不错的,至少对于要求不是很复杂的来说足够了。可以数据格式、样式,而且非常简单。

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐