2010-12-22 59 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));