web-dev-qa-db-ja.com

Apachepoiの日付形式

こんにちは私はcsvファイルを読んで2011年1月1日に日付を取得していますが、Apache poiライブラリを使用して.xlsxファイルを書き込むときは、2011年1月1日の形式でそれが必要です。私のコードは

XSSFDataFormat df = workBook.createDataFormat();
cs.setDataFormat(df.getFormat("dd-MMM-yy"));

しかし、それは私にとってはうまくいきません。私はどこで間違いをしているのですか。

15
Lalit Chattar

セル形式を作成する必要があるだけでなく、それをセルに適用する必要もあります!

XSSFDataFormat df = workBook.createDataFormat();
cs.setDataFormat(df.getFormat("d-mmm-yy"));

// Get / Create our cell
XSSFRow row = sheet.createRow(2);
XSSFCell cell = row.createCell(3);

// Set it to be a date
Calendar c = Calendar.getInstance();
c.set(2012,3-1,18); // Don't forget months are 0 based on Calendar
cell.setCellValue( c.getTime() );

// Style it as a date
cell.setCellStyle(cs);

次に、JavaとExcelは、日付の書式設定ルールの表現方法が少し異なることに注意する必要があります。Excelのコピーを開き、サンプルセルを希望どおりに書式設定してから、必要なフォーマットルールのメモ。あなたのケースでは、Javaスタイルの大文字のMを使用していますが、Excelでは小文字です(上記を参照))。

23
Gagravarr