私は、Apache POIを使用して、既存のExcel 2003ファイルをプログラムで読み取りました。.xlsファイル全体をメモリ内に作成し(引き続きApache POIを使用)、次に最後にファイルに書き込むという新しい要件があります。私の邪魔になる唯一の問題は、日付を含むセルの処理です。
次のコードを検討してください。
Date myDate = new Date();
HSSFCell myCell;
// code that assigns a cell from an HSSFSheet to 'myCell' would go here...
myCell.setCellValue(myDate);
このセルを含むワークブックをファイルに書き出し、Excelで開くと、セルが数値として表示されます。はい、私はExcelがその「日付」を1900年1月1日からの日数として保存し、それがセル内の数値が表すものであることを理解しています。
質問:POIでどのAPI呼び出しを使用して、日付セルにデフォルトの日付形式を適用したいかを伝えることができますか?
理想的には、ユーザーが手動でExcelでスプレッドシートを開き、Excelが日付として認識したセル値を入力した場合に、Excelが割り当てたのと同じデフォルトの日付形式でスプレッドシートのセルを表示したいです。
BuiltinFormats
Excelが認識しているすべての標準形式(日付形式だけでなく)をリストした名前のPOIクラスがあります。getFormat()
上記のスニペットに示されているメソッドのパラメーターとして使用するものの1つを使用しています。