Установка времени в Excel с использованием POI

Я пытаюсь создать рабочий лист Excel, используя API-интерфейсы POI в Java. В этом рабочем листе Excel я хочу иметь ячейку с одним TIME. Установив это, мы можем включить ячейку в сумму этого конкретного столбца, как мы делаем это в числовых столбцах. Для этого нам нужно отформатировать ячейку как Время >> 13:30:55. (Внутренний форматч: мм: сс; @» ). И нам нужно удалить часть даты из ячейки.

Когда я читаю значение ячейки с помощью POI, оно возвращается какВс 31 дек 01:00:00 IST 1899 ' (Когда я устанавливаю значение 1:00), индекс формата ячейки равен 166, а строка формата ячейки равна 'ч: мм: сс; @».

После установки форматов и стиля, которые были прочитаны из Excel и значения ячейки, как 1800-декабря-31 и со значением времени, новый Excel показывает ячейку как '######» (ошибка) и значение ячейки устанавливается как '-1', Ниже приведен код, который я использовал. Я что-то пропустил? Можно ли установить значение так, как мне нужно.

    InputStream is = new BufferedInputStream(new FileInputStream(""));
    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, 1899);
    dummy.set(Calendar.MONTH, Calendar.DECEMBER);
    dummy.set(Calendar.DATE, 31);

    dummy.set(Calendar.HOUR, 00);
    dummy.set(Calendar.MINUTE, 00);
    dummy.set(Calendar.SECOND, 00);
    dummy.set(Calendar.MILLISECOND, 00);

    Calendar cc = Calendar.getInstance();
    XSSFRow row2 = sheet.createRow(25);
    XSSFCell cell2 = row2.createCell(2);

    dummy.set(Calendar.HOUR, cc.get(Calendar.HOUR));
    dummy.set(Calendar.MINUTE, cc.get(Calendar.MINUTE));
    dummy.set(Calendar.SECOND, cc.get(Calendar.SECOND));
    dummy.set(Calendar.MILLISECOND, cc.get(Calendar.MILLISECOND));

    System.out.println("ExcelFileReader main dummy : '" + dummy.getTime() + "'");
    cell2.setCellValue(dummy.getTime());

    CellStyle style = wb.createCellStyle();
    DataFormat df = wb.createDataFormat();
    style.setDataFormat(df.getFormat("[h]:mm:ss;@"));
    cell2.setCellStyle(style);

    FileOutputStream fos = new FileOutputStream(new File(""));
    wb.write(fos);
    fos.close();
    System.out.println("ExcelFileReader DONE");

Ниже приведен вывод программы.

    ExcelFileReader main cell.getDateCellValue() : 'Sun Dec 31 00:15:00 IST 1899'
    ExcelFileReader main cell.getCellStyle().getDataFormat() : '166'
    ExcelFileReader main cell.getCellStyle().getDataFormat() : 'h:mm:ss;@'
    ExcelFileReader main dummy : 'Sun Dec 31 11:32:24 IST 1899'
    ExcelFileReader DONE

Ответы на вопрос(2)

Ваш ответ на вопрос