8

私はapachepoi3.8を使用してExcelファイルを作成しています。このExcelファイルにはいくつかの日付が含まれている必要があります。

エクセルタイプ「日付」をフォーマットとしてエクセルファイルに日付を書き込もうとしています。しかし、私は常に「カスタム」タイプを取得します。タイプ「日付」を使用する必要があるため、ユーザー設定に基づいてローカライズされます。

私は以下を試しました:

Apachepoiの日付形式

ApachePOIは日付をExcelセルにローカライズしました

しかし、それは機能しません。

これは私が持っているコードです:

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");

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

XSSFCell cell = sheet.createRow(0).createCell(0);

Calendar c = Calendar.getInstance();
c.set(2012,3-1,18);
cell.setCellValue( c.getTime() );

cell.setCellStyle(cs);

// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("c:\\temp\\dates-sworkbook.xlsx");
wb.write(fileOut);
fileOut.close();

どのフォーマットを使用すればよいですか?

ありがとう

4

4 に答える 4

10

日付は、特殊な組み込み形式の 1 つです。それを明示的に使用したい場合は、明示的に選択する必要があります。(Excel で使用されるほとんどすべての形式は、指定した方法でレンダリングされるカスタム形式ですが、いくつかの特別なものがあります)

POI のBuiltinFormatsには、特殊な組み込み形式の完全なリスト (最近の Excel のコピーのドロップダウンにある形式のリストよりもはるかに小さいものです!) があります。独自のカスタム書式文字列ではなく、これらのいずれかを設定したことを確認すると、期待どおりに動作するはずです

于 2012-06-29T10:54:43.190 に答える
4

これをすでに解決したかどうかはわかりませんが、これを解決するコードを次に示します。それは実際に私の問題を解決しました。

CreationHelper createHelper = wb.getCreationHelper();
...
cs.setDataFormat(createHelper.createDataFormat().getFormat("yourformat"));

http://poi.apache.org/spreadsheet/quick-guide.html#CreateDateCellsから 取得

于 2013-04-15T11:37:39.617 に答える