1

エクセルファイルを書きたいです。このファイルには、「11:21」のような時間の値を入力する列があります。この列の最後の行に、これらの時間値を追加して、「123:23」のように合計を表示します。このために私は次のコードを使用しています:

HSSFCellStyle cellStyle = wb.createCellStyle();
                    cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("h:mm"));
                    c.setCellValue(DateUtil.convertTime("49:12"));
                    c.setCellStyle(cellStyle);

しかし、次のエラーが発生します:java.lang.IllegalArgumentException:不正な時間形式「49:12」が必要です「HH:MM」または「HH:MM:SS」-時間値(49)が許容範囲外です(0 ..23)

私を助けてください。

4

3 に答える 3

4

このアプローチは私にとってはうまくいきました:
1. カスタム データ形式 [h]:mm を設定します
。 2. SimpleDateFormat を使用して、時間の java.util.Date オブジェクトを取得します
。 Calendar
4を使用した1900年。1日を差し引いた後、セル値をDateオブジェクトとして設定します

CreationHelper createHelper = wb.getCreationHelper();

CellStyle hhmmStyle = wb.createCellStyle();
hhmmStyle.setDataFormat(createHelper.createDataFormat().getFormat("[h]:mm"));

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");

xlsCell.setCellStyle(hhmmStyle);

Date time = sdf.parse("49:00");
Calendar cal = Calendar.getInstance();
cal.setTime(time);
cal.set(Calendar.YEAR, 1900);

xlsCell.setCellValue(DateUtil.getExcelDate(cal.getTime())-1.0);
于 2012-11-08T05:30:31.407 に答える
1

使ってみてSimpleDateFormat

    SimpleDateFormat _24HourFormat = new SimpleDateFormat("HH:mm");
    SimpleDateFormat _12HourFormat = new SimpleDateFormat("hh:mm");

例えば

SimpleDateFormat _24HourFormat = new SimpleDateFormat("HH:mm");
Date date = _24HourFormat.parse("49:12");
cell.setCellValue(date);
于 2012-10-15T16:02:56.650 に答える
-1

値を として設定するために、データの最初の位置にアポストロフィを追加できます。String値を として設定する必要はありませんDate

c.setCellValue("'49:12");
于 2012-10-15T15:56:26.990 に答える