1

「2655.32」を「$2,655.32」としてExcelに出力したい。

コード スニペットは次のとおりです。

case 0:
    HSSFCellStyle style;
    style.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
    style.setDataFormat((short) 7);
    cell.setCellValue(new HSSFRichTextString("2655.32"));
    cell.setCellStyle(style);
break;

生成された Excel セルに「$」や千単位のカンマ「,」が表示されず、「このセルの数値はテキストとしてフォーマットされているか、アポストロフィが先行しています。ダブルで必要なものを取得できます」というエラー チェック警告が表示されます。セルをクリックして Excel で修正すると、「$」と「,」が表示されます。

これを解決するために文字列を double に解析するために使用できることはわかってい cell.setCellValue(Double.parse("2655.32")) ますが、その場合、値が解析可能であることを確認し、各 switch ケースに try catch ブロックを追加する必要がありますが、これは非常に重複しています。

この種の数値文字列をテキストとして出力し、同時に通貨形式を維持する方法があるかどうか疑問に思っていますか? このように $2,655.32

4

2 に答える 2

2

これは、問題を解決するための優れたチュートリアルです。HSSFDataFormatいくつかの組み込みフォーマットがあります。次のような形式を使用#,##0.0すると、問題が解決するはずです。

 HSSFCellStyle cs = hssfworkbook.createCellStyle();
 HSSFDataFormat df = hssfworkbook.createDataFormat();
 cs.setDataFormat(df.getFormat("#,##0.0")); //or cs.setDataFormat((short)7);
 cell.setCellValue(2655.32);
 cell.setCellStyle(cs);

ありがとう!

于 2013-03-12T17:24:10.283 に答える
0
cell.setCellValue(416.17);      
cellStyle.setDataFormat((short)7);
cell.setCellStyle(cellStyle);
于 2013-03-12T17:03:18.453 に答える