小编use*_*844的帖子

使用POI在Excel中设置时间

我正在尝试使用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)

apache-poi date-formatting

6
推荐指数
2
解决办法
7421
查看次数

标签 统计

apache-poi ×1

date-formatting ×1