我正在努力解决java中一个非常特殊的apache poi/excel问题:
下面的代码工作正常,但预期日期筛选器不会自动显示在excel中。只有当我使用excel的“文本到列”功能,或者在日期单元格中单击一次并按enter键时,该单元格才会真正被识别为日期值,并显示日期过滤器
图1:初始excel创建后,没有可用的日期筛选器
图2:只要我在日期单元格中单击并按enter键,该值就会右对齐,并自动应用日期过滤器
我已经尝试过应用date cellstyle,如下所示,我也尝试过将date格式直接应用到用于ApachePOI的excel模板。
//handling the date format
CellStyle cellStyle = workbook.createCellStyle();
CreationHelper createHelper = workbook.getCreationHelper();
cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("dd.MM.yyyy"));
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy", Locale.GERMAN);
....
//loop through content
//apply value with cellStyle
cell.setCellValue(dateFormat.format(obj));
cell.setCellStyle(cellStyle);
我尝试过不同的方法(如excel的数字日期值、从模板中删除单元格样式、从java代码中删除单元格样式……),但我总是得到相同的结果:
值是正确的,excel的单元格样式是正确的,但在第一步中不会将写入的值检测为日期
有什么想法吗?我没有发现如何使用ApachePOI调用“文本到列”。如果没有办法,我将不得不编写vba代码,在excel启动时调用“文本到列”。
先谢谢你
暂无答案!
目前还没有任何答案,快来回答吧!