poi3.8 单元格显示时间hh:mm,需要点击单元格时在公式栏显示时间hh:mm:ss,setDataFormat不会立刻生效,setForceFormulaRecalculation也不会立刻生效,evaluateFormulaCell还是需要双击才会生效
时间: 2024-02-29 17:56:50 浏览: 35
您可以使用以下代码将单元格格式设置为时间格式,并在单击单元格时在公式栏中显示完整时间:
```
CellStyle timeStyle = workbook.createCellStyle();
timeStyle.setDataFormat(workbook.createDataFormat().getFormat("hh:mm"));
cell.setCellStyle(timeStyle);
sheet.setActiveCell(cell);
sheet.setActiveCell(cell.getAddress());
```
使用 `setActiveCell` 方法可以将单元格设置为活动单元格,从而在单击单元格时在公式栏中显示完整时间。
相关问题
poi3.8 单元格显示时间hh:mm,需要点击单元格时在公式栏显示时间hh:mm:ss,setDataFormat不会立刻生效,setForceFormulaRecalculation也不会立刻生效
如果在使用 `setDataFormat` 方法设置单元格格式后,同时使用 `setForceFormulaRecalculation` 方法强制 Excel 重新计算公式,但仍然无法立刻看到新的格式,可能是因为 Excel 的自动计算选项被关闭了。
可以使用以下代码来开启 Excel 的自动计算选项:
```java
workbook.setForceFormulaRecalculation(true);
HSSFFormulaEvaluator.evaluateAllFormulaCells(workbook);
```
在这里,我们使用 `setForceFormulaRecalculation` 方法开启 Excel 的自动计算选项,然后使用 `HSSFFormulaEvaluator.evaluateAllFormulaCells` 方法重新计算所有公式单元格的值,这样就能够立刻看到新的格式了。
需要注意的是,`evaluateAllFormulaCells` 方法的计算量比较大,如果工作簿中包含大量的公式单元格,可能会比较耗时。如果只需要重新计算某个单元格的公式,可以使用 `evaluateFormulaCell` 方法来计算指定单元格的公式,代码如下:
```java
HSSFFormulaEvaluator.evaluateFormulaCell(cell);
```
在这里,我们使用 `evaluateFormulaCell` 方法计算指定单元格的公式。
希望这个回答能够帮到您,如有其他问题,请随时提出。
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 重新计算公式,这样就能够立刻看到新的格式。
希望这个回答能够帮到您,如有其他问题,请随时提出。
阅读全文