我正在使用Java Spring和jxl在服务器端创建Excel工作簿。需要在Excel中显示的数据包含已格式化的数字。我正在使用
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 :(得分:3)
我将变量更改为 int ,并使用了 new Number 函数。
int eday = Integer.parseInt(Trainingresult.getString("Day"));
//Label Eday = new Label(1, i, eday);
firstsheet.addCell(new Number(1,i,eday));
答案 1 :(得分: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();
}