poi3.8 xlsx pot3.8 设置setDataFormat后需要双击单元格才会生效,如果使用Date默认会有日期,但是不需要日期,注意:公示栏显示的是hh:mm:ss单元格显示的是hh:mm,怎么解决
时间: 2024-02-29 17:52:25 浏览: 68
如果想要在单元格中显示时分秒,但是不需要日期的话,可以使用`SimpleDateFormat`类将日期格式化为时分秒的形式,然后将格式化后的字符串写入单元格中。同时,还需要设置单元格的数据格式为`h:mm:ss`,这样公式栏中才会显示相应的格式。
示例代码如下:
```java
DataFormat dataFormat = workbook.createDataFormat();
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(dataFormat.getFormat("h:mm:ss"));
// 将日期格式化为时分秒的形式
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String timeStr = sdf.format(date);
// 在单元格中写入格式化后的字符串
Cell cell = row.createCell(0);
cell.setCellValue(timeStr);
cell.setCellStyle(cellStyle);
```
这样在单元格中就会以时分秒的形式显示,公式栏中也会显示相应的格式。需要注意的是,设置单元格数据格式时,字符串中的`h`表示小时,`m`表示分钟,`s`表示秒,大小写有区分。
相关问题
poi3.8 xlsx pot3.8 设置setDataFormat后需要双击单元格才会生效,如果使用Date默认会有日期,但是不需要日期,怎么解决
在设置单元格数据格式时,可以使用`DataFormat.setNumFmtIndex()`方法来设置自定义格式,在这个方法中传入一个数字格式的索引,可以自定义格式,比如`0`表示普通文本,`1`表示数字等等。对于日期格式,可以使用`DataFormat.getBuiltinFormat()`方法获取内置的日期格式,例如`yyyy/mm/dd`的格式对应的内置格式为`14`,然后使用`DataFormat.setNumFmtIndex()`方法设置该格式即可。示例代码如下:
```java
DataFormat dataFormat = workbook.createDataFormat();
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(dataFormat.getFormat("yyyy/mm/dd"));
```
如果想要去掉日期部分,可以使用`SimpleDateFormat`类将日期格式化为自己需要的字符串格式。例如:`new SimpleDateFormat("HH:mm:ss")`将日期格式化为时分秒的形式,然后再将格式化后的字符串写入单元格中。
poi3.8 xlsx 设置setDataFormat后需要双击单元格才会生效,如果使用Date默认会有日期,但是不需要日期,公式栏显示的是hh:mm:ss单元格显示的是hh:mm,注意:单元格不显示秒格式为hh:mm,公式栏显示秒格式为hh:mm:ss,怎么解决
如果想要在单元格中显示时分,而不显示秒,同时希望公式栏中也只显示时分,可以使用`SimpleDateFormat`类将日期格式化为时分的形式,然后将格式化后的字符串写入单元格中。同时,还需要设置单元格的数据格式为`h:mm`,这样单元格中只会显示时分,而公式栏中也会只显示时分格式。
示例代码如下:
```java
DataFormat dataFormat = workbook.createDataFormat();
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(dataFormat.getFormat("h:mm"));
// 将日期格式化为时分的形式
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Date date = new Date();
String timeStr = sdf.format(date);
// 在单元格中写入格式化后的字符串
Cell cell = row.createCell(0);
cell.setCellValue(timeStr);
cell.setCellStyle(cellStyle);
```
这样在单元格中就会以时分的形式显示,公式栏中也会只显示时分格式,不显示秒。需要注意的是,设置单元格数据格式时,字符串中的`h`表示小时,`m`表示分钟,大小写有区分。
阅读全文