2013-03-12 43 views
1

我想在excel中輸出「2655.32」爲「$ 2,655.32」。輸出字符串作爲Excel中的貨幣格式POI

下面是代碼片段:

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修復它,「$」和「,」會出現。

我知道我可以使用cell.setCellValue(Double.parse("2655.32"))解析這個字符串來解決這個問題,但如果是這樣,我必須確保該值是可解析的,並將try catch塊添加到每個o我的開關盒非常重複。

我想知道是否有辦法輸出這種數字字符串作爲文本,並保持貨幣格式在同一時間?像這樣$ 2,655.32

回答

0
cell.setCellValue(416.17);  
cellStyle.setDataFormat((short)7); 
cell.setCellStyle(cellStyle); 
2

Here是一個很好的解決你的問題的教程。 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); 

謝謝!