2010-12-22 61 views
6

我正在使用Java Spring和jxl在服務器端創建Excel工作簿。需要在Excel中顯示的數據由已格式化的數字組成。我使用如何在JExcel中編寫格式化數字(jxl)

WritableCellFormat wcf = new WritableCellFormat(); 
wcf.setAlignment(Alignment.RIGHT); 
.... 
.... 
sheet.addCell(new Label(j, i + 1, xxx, wcf)); 
//where xxx is a string which is a number already formatted 

在下載的Excel文件,所有這些數字都存儲爲文本等Excel無法使用他們的公式,它會發出警告的「存儲爲文本號」,我必須做'轉換爲數字'。

在jxl中,我們可以傳遞字符串並告訴將它們解釋爲數字嗎?我使用的所有數字都是有效數字,使用$,%,千分隔符格式不同。我不想將它們轉換爲有效的數字,並在導出爲Excel時重新格式化。

請幫忙。謝謝。

回答

0
/*use new Number to write number cell*/ 
WritableWorkbook w; 
    try { 
     w = Workbook.createWorkbook(new File("c:/test.xls")); 
     WritableSheet s = w.createSheet("Demo Book", 0); 
     WritableCellFormat wcf = new WritableCellFormat(); 
     for (int i=0;i<10;i++){ 
      int row = i+1; 
      /*add cell number*/ 
      s.addCell(new Number(1, i, (i*15))); 
      /*add cell number*/ 
      s.addCell(new Number(2, i, (i*3+Math.random()*10))); 
      /*add formula*/ 
      s.addCell(new Formula(3,i,"B"+row+" * C"+row)); 
     } 
     w.write(); 
     w.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (RowsExceededException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (WriteException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
2

我有一個類似的問題

我改變了變量INT和使用新號碼功能它幫助。

int eday = Integer.parseInt(Trainingresult.getString("Day")); 
//Label Eday = new Label(1, i, eday); 
firstsheet.addCell(new Number(1,i,eday));