天天看點

jxl 數字格式化百分比格式以及保留小數位數設定

private jxl.write.WritableCellFormat wcfF = null;//百分比格式

private jxl.write.WritableCellFormat wcfF3 = null;//兩位小數格式

private jxl.write.WritableCellFormat wcfF4 = null;//兩位小數格式

//處理wcfF為百分比格式

public BLExcelReportData() throws Exception {

        WritableFont wf = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false);

        DisplayFormat displayFormat = NumberFormats.PERCENT_FLOAT;       //PERCENT_FLOAT表示為百分比格式     

        wcfF = new WritableCellFormat(wf,displayFormat);   

        wcfF.setAlignment(Alignment.CENTRE);   

        wcfF.setVerticalAlignment(VerticalAlignment.CENTRE);   

        wcfF.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);  

        wcfF3 = new WritableCellFormat(NumberFormats.FLOAT);//兩位小數格式

        wcfF3.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);

        wcfF4 = new WritableCellFormat(new NumberFormat("#0.0000"));//四位小數

        wcfF4.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);

    }

在公式直接引用wcfF

Formula  f = new Formula(1, 1, "A5/A4", wcfF);   //A5/A4是EXCEL公式

sheet.addCell(f );

有的需要保留兩位小數,我們用的是DecimalFormat,發現這個方法是把數字轉化為字元串了,頁面可以使用,但是導出的EXCEL就顯示的不夠 标準了

Formula  f = new Formula(1, 1, "A5/A4", wcfF3);   //兩位小數格式

sheet.addCell(f );