0

POI-3.2-Final(レトロな互換性の問題のために3.5以降にアップグレードできません)を使用してExcelファイルを作成する必要があり、各行について、列Aで日付をフォーマットする必要があります。

メソッド名に基づいて、私はそれを行う方法は次のとおりだと思いました:

short dateFormat = workbook.createDataFormat().getFormat("dd/MM/yyyy HH:mm");
...
cell = row.createCell(0);
cell.setCellValue(new Date());
cell.getCellStyle().setDataFormat(dateFormat);

しかし、実際には面白いことに、このスタイルはすべてのセルに適用されます。

だから、私はAPIを切り替えることができないことを覚えておいてください(アップグレードなし、csvなし、jexcelなし)、私が望むものを達成する方法はありますか?

ありがとう

4

1 に答える 1

1

問題は、デフォルトのcellStyleを変更していることです。
cell.getCellStyle()そのセルに現在設定されているスタイルを提供します。これは、まだ変更していない場合は通常、デフォルトのスタイルです。
これを期待どおりに機能させるには、dateFormatから新しいCellStyleオブジェクトを作成し、それを次のようにセルに設定する必要があります。

dateStyle = workbook.createCellStyle();
...
dateStyle.setDataFormat(dateFormat);
cell.setCellStyle(dateStyle);

また、そのスタイルオブジェクトを一度だけ作成し、そのスタイルにしたいすべてのセルに再利用するようにしてください。

于 2010-03-25T11:16:31.030 に答える