poi3.8 xlsx 单元格显示08:00并且公式栏显示08:00:00,可以使用Date和String,但绝对不能出现日期,setcellStyle、sheet.autoSizeColumn(0),setForceFormulaRecalculation(true),evaluateAll();之后需要双击每个单元格才会生效,怎样让其直接生效
时间: 2024-02-29 13:52:05 浏览: 17
您可以在设置单元格样式时,将单元格的数据格式设置为时间格式,例如:
```
CellStyle style = workbook.createCellStyle();
style.setDataFormat(workbook.createDataFormat().getFormat("hh:mm:ss"));
cell.setCellStyle(style);
```
这样可以确保单元格显示为时间格式,且不会出现日期。如果您需要在公式栏中显示完整的时间格式(包括秒数),可以在设置单元格公式时,使用TEXT函数将时间格式化为字符串,例如:
```
cell.setCellFormula("TEXT(A1, \"hh:mm:ss\")");
```
此外,调用`setForceFormulaRecalculation(true)`和`evaluateAll()`可以强制重新计算所有公式,但可能会导致性能问题。如果您想要在编辑单元格后自动更新公式结果,可以考虑使用Apache POI提供的`FormulaEvaluator`类,例如:
```
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
evaluator.evaluateAll();
```
这样可以确保公式结果始终与单元格数据同步。
相关问题
poi3.8 xlsx 单元格显示08:00并且公式栏显示08:00:00 可以使用Date和String,但不能出现日期
如果您希望在单元格中显示时间,并且公式栏中也显示相同的时间,您可以使用 `java.util.Date` 类型来设置单元格值,并使用 Excel 内置的时间格式将单元格格式设置为显示时间部分。
以下是一个示例代码:
```java
Date time = new Date(); // 假设您要显示当前时间
CellStyle style = workbook.createCellStyle();
style.setDataFormat(workbook.createDataFormat().getFormat("hh:mm")); // 设置时间格式
Cell cell = row.createCell(0);
cell.setCellValue(time);
cell.setCellStyle(style);
```
这将在单元格中显示时间(例如“08:00”),并且公式栏中也将显示相同的时间(例如“08:00:00”)。请注意,这种方法将时间作为 Java 中的 `Date` 类型处理,并且将其转换为 Excel 中的日期时间类型。如果您需要对这些时间值执行计算,Excel 将使用日期部分进行计算。如果您只需要在 Excel 中显示时间部分,请使用上一个回答中的第一种方法,将单元格格式设置为仅显示时间部分。
poi3.8 xlsx 单元格显示08:00并且公式栏显示08:00:00,可以使用Date和String,但绝对不能出现日期
如果您希望在单元格中显示时间,并且公式栏中也显示相同的时间,而不显示日期部分,您可以创建一个自定义格式,将其应用于单元格,并将时间作为字符串设置为单元格值。
以下是一个示例代码:
```java
String timeString = "08:00"; // 假设您要显示的时间为 "08:00"
CellStyle style = workbook.createCellStyle();
style.setDataFormat(workbook.createDataFormat().getFormat("hh:mm;@")); // 设置自定义格式
Cell cell = row.createCell(0);
cell.setCellValue(timeString);
cell.setCellStyle(style);
```
这将在单元格中显示时间(例如“08:00”),并且公式栏中也将显示相同的时间(例如“08:00:00”),但不会显示日期部分。请注意,这种方法将时间作为字符串处理,在公式栏中也将显示为字符串。如果您需要在公式中使用这些时间值进行计算,请确保将其转换为 Excel 中的时间类型。
在自定义格式字符串中,使用分号分隔时间格式和文本格式。在时间格式中,使用 `hh` 表示小时,使用 `mm` 表示分钟。在文本格式中,使用 `@` 表示将单元格值作为文本显示。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)