poi3.8 xlsx 单元格显示时间hh:mm,怎么样才能在不改变单元格的情况下,选中单元格,单元格的值在公式栏显示不包含日期的时间hh:mm:ss,setcellstyle 设置之后需要双击才有效,不使用公式,怎么解决这个问题
时间: 2024-02-29 19:51:09 浏览: 9
你可以通过设置单元格的格式来实现这个需求。具体来说,你可以使用 XSSFCellStyle 类的 setCustomFormat 方法来设置单元格的自定义格式。例如,你可以使用以下代码将单元格的格式设置为仅显示时间(hh:mm):
```
XSSFCellStyle cellStyle = workbook.createCellStyle();
XSSFDataFormat format = workbook.createDataFormat();
cellStyle.setDataFormat(format.getFormat("hh:mm"));
cell.setCellStyle(cellStyle);
```
这样,单元格中的值将仍然是时间(包含日期和时间),但是在公式栏中仅显示时间(hh:mm)。注意,这种方法只是改变了单元格的显示格式,并没有改变单元格的值。
如果你不想使用公式,那么你可以使用如下代码将单元格的值转换为字符串来解决这个问题:
```
cell.setCellType(CellType.STRING);
String value = cell.getStringCellValue();
```
这样,你可以获得单元格的字符串值,它不包含日期,仅包含时间(hh:mm:ss)。
相关问题
poi3.8 XSSFWorkbook 单元格显示时间hh:mm,需要点击单元格时在公式栏显示时间hh:mm:ss
可以通过设置单元格格式来实现。在使用 XSSFWorkbook 创建单元格时,可以使用 `createCellStyle()` 方法创建一个新的单元格格式对象,然后使用 `setDataFormat()` 方法设置时间格式。例如,设置时间格式为 "hh:mm",可以使用 `setDataFormat(workbook.createDataFormat().getFormat("hh:mm"));`。这样,单元格中显示的时间格式为 "hh:mm",而在公式栏中显示的时间格式为 "hh:mm:ss"。
示例代码:
```java
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Sheet1");
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue(new Date());
XSSFCellStyle style = workbook.createCellStyle();
style.setDataFormat(workbook.createDataFormat().getFormat("hh:mm"));
cell.setCellStyle(style);
workbook.write(new FileOutputStream("example.xlsx"));
workbook.close();
```
poi3.8 XSSFWorkbook 单元格显示时间hh:mm,需要点击单元格时在公式栏显示时间hh:mm:ss,不需要显示yyyy-MM-dd
可以在设置单元格格式时,同时设置日期格式和时间格式。具体来说,可以使用 `createDataFormat()` 方法创建一个新的数据格式对象,然后使用 `setDataFormat()` 方法设置日期格式和时间格式。例如,设置时间格式为 "hh:mm",可以使用 `setDataFormat(workbook.createDataFormat().getFormat("hh:mm;@"));`。这样,单元格中显示的时间格式为 "hh:mm",而在公式栏中显示的时间格式为 "hh:mm:ss",同时不会显示日期。
示例代码:
```java
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Sheet1");
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue(new Date());
XSSFCellStyle style = workbook.createCellStyle();
style.setDataFormat(workbook.createDataFormat().getFormat("hh:mm;@"));
cell.setCellStyle(style);
workbook.write(new FileOutputStream("example.xlsx"));
workbook.close();
```