我正在尝试使用Java中的POI api创建Excel工作表.在那个Excel工作表中我想要一个单独使用TIME的单元格.通过设置这个,我们可以像在数字列中一样将单元格包括在该特定列的总和中.为此,我们需要将单元格格式化为Time >> 13:30:55.(内部格式为'h:mm:ss; @').我们需要从单元格中删除日期部分.
当我使用POI读取单元格的单元格值时,它返回为'Sun Dec 31 01:00:00 IST 1899'(当我将值设置为1:00时),单元格格式索引为166并且单元格格式string是'h:mm:ss; @'.
将从excel和单元格值中读取的格式和样式设置为1800-December-31并使用时间值后,新的excel将单元格显示为"######"(错误)并设置单元格值为'-1'.以下是我使用过的代码.我错过了什么吗?是否可以按我的要求设置值.
InputStream is = new BufferedInputStream(new FileInputStream("<FileName>"));
XSSFWorkbook wb = new XSSFWorkbook(is);
is.close();
XSSFSheet sheet = wb.getSheetAt(0);
XSSFRow row = sheet.getRow(2);
XSSFCell cell = row.getCell(18);
System.out.println("ExcelFileReader main cell.getDateCellValue() : '" + cell.getDateCellValue() + "'");
System.out.println("ExcelFileReader main cell.getCellStyle().getDataFormat() : '" + cell.getCellStyle().getDataFormat() + "'");
System.out.println("ExcelFileReader main cell.getCellStyle().getDataFormat() : '" + cell.getCellStyle().getDataFormatString() + "'");
XSSFRow row1 = sheet.createRow(21);
XSSFCell cell1 = row1.createCell(2);
cell1.setCellStyle(cell.getCellStyle());
cell1.setCellValue(cell.getDateCellValue());
Calendar dummy = Calendar.getInstance();
dummy.setLenient(false);
dummy.set(Calendar.YEAR, …Run Code Online (Sandbox Code Playgroud)