2011-06-30 40 views
6

我正在使用JXL編寫Excel文件。客戶希望某個列顯示帶有一位小數的數字。他們也希望細胞類型是「數字」。當我使用以下(測試)代碼時,數字顯示正確,但單元格類型爲「自定義」。JXL數字格式和單元格類型

File excelFile = new File("C:\\Users\\Rachel\\Desktop\\TestFile.xls"); 

WritableWorkbook excelBook = Workbook.createWorkbook(excelFile); 
WritableSheet excelSheet = excelBook.createSheet("Test Sheet", 0); 

WritableFont numberFont = new WritableFont(WritableFont.ARIAL); 
WritableCellFormat numberFormat = new WritableCellFormat(numberFont, new NumberFormat("#0.0")); 

Number numberCell = new Number(0, 0, 25, numberFormat); 
excelSheet.addCell(numberCell); 

excelBook.write(); 
excelBook.close(); 

如果我更改數字格式是在NumberFormats(例如NumberFormats.INTEGER)的變量中的一個,所述細胞類型是正確的。但數字當然顯示爲整數。我在NumberFormats中找不到符合我需要的變量。

任何人都知道一種方式來同時顯示數字和單元格類型嗎?我需要以小數點後1位顯示的所有數字(即使它們是整數)。我不能切換到任何其他技術,我必須使用JXL。

+0

我知道這個問題是問在2011年 你管理圖出來嗎?我有同樣的問題,但我有其他選擇使用Apache POI。 – PSone

+1

我忘了我最終做了什麼,現在和另一家公司在一起。抱歉 –

回答

7

對不起,如果這不是你想要的。但是,我瞭解您的需求是讓單元格類型=數字有1位小數。您可以定義自己的數字格式。您可以使用此格式(「#.0」),以得到你想要的東西(如:900.0,23.0,34324.0和.etc)

NumberFormat decimalNo = new NumberFormat("#.0"); 
WritableCellFormat numberFormat = new WritableCellFormat(decimalNo); 
//write to datasheet 
Number numberCell = new Number(0, 0, 25, numberFormat); 
excelSheet.addCell(numberCell);