poi3.8 单元格显示时间hh:mm,需要点击单元格时在公式栏显示时间hh:mm:ss,使用setDataFormat不会立即生效
时间: 2024-01-08 15:04:56 浏览: 67
在使用 `setDataFormat` 方法设置单元格格式后,有时候会出现设置不会立即生效的情况,这是因为在设置单元格格式后,需要使用 `forceFormulaRecalculation` 方法强制重新计算公式,才能够在公式栏中立即显示新的格式。
因此,您可以在设置单元格格式后,调用 `forceFormulaRecalculation` 方法,如下所示:
```java
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(workbook.createDataFormat().getFormat("hh:mm:ss"));
Cell cell = row.createCell(0);
cell.setCellValue(new Date()); // 假设这里是要设置的时间值
cell.setCellStyle(cellStyle);
sheet.setForceFormulaRecalculation(true); // 强制重新计算公式
```
在这里,我们通过调用 `setForceFormulaRecalculation` 方法来强制重新计算公式,这样就能够在公式栏中立即显示新的格式。
希望这个回答能够帮到您,如有其他问题,请随时提出。
相关问题
poi3.8 单元格显示时间hh:mm,需要点击单元格时在公式栏显示时间hh:mm:ss,setDataFormat不会立刻生效
在使用 `setDataFormat` 方法设置单元格格式后,有时候确实会出现该方法不会立刻生效的情况。这是因为在设置单元格格式后,需要强制 Excel 重新计算公式,才能立刻看到新的格式。
可以使用 `setForceFormulaRecalculation` 方法强制 Excel 重新计算公式,代码如下:
```java
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(workbook.createDataFormat().getFormat("hh:mm:ss"));
Cell cell = row.createCell(0);
cell.setCellValue(new Date()); // 假设这里是要设置的时间值
cell.setCellStyle(cellStyle);
sheet.setForceFormulaRecalculation(true); // 强制重新计算公式
```
在这里,我们在设置单元格格式后,使用 `setForceFormulaRecalculation` 方法强制 Excel 重新计算公式,这样就能够立刻看到新的格式。
希望这个回答能够帮到您,如有其他问题,请随时提出。
poi3.8 单元格显示时间hh:mm,需要点击单元格时在公式栏显示时间hh:mm:ss,使用setDataFormat不会立即生效,加上forceFormulaRecalculation不起作用
如果在使用 `setDataFormat` 方法设置单元格格式后,加上了 `forceFormulaRecalculation` 方法仍然没有起作用,您可以尝试将单元格格式设置为字符串类型,并将时间格式化为字符串,如下所示:
```java
Cell cell = row.createCell(0);
cell.setCellValue("08:30:00"); // 将时间格式化为字符串
cell.setCellType(CellType.STRING); // 设置单元格格式为字符串类型
sheet.setForceFormulaRecalculation(true); // 强制重新计算公式
```
在这里,我们将时间格式化为字符串,并将单元格格式设置为字符串类型,这样就能够在单元格中显示时间格式为 "hh:mm",同时在公式栏中显示时间格式为 "hh:mm:ss",且不会显示日期。而使用 `setForceFormulaRecalculation` 方法强制重新计算公式,则能够立即在公式栏中显示新的格式。
希望这个回答能够帮到您,如有其他问题,请随时提出。
阅读全文