JAVA 使用JXL生成excel

初始化工作薄对象

public void init(String inputPath,String sheetName) throws Exception {
    try{
        //创建输出流对象
        outputStream = new BufferedOutputStream(new FileOutputStream(inputPath), 8192);
        // 文件对象
        book = Workbook.createWorkbook(outputStream);
        // 工作簿对象
        sheet = book.createSheet(sheetName, 0);

        //设置边距
        sheet.getSettings().setBottomMargin(0.5d);
        sheet.getSettings().setRightMargin(0.5d);

        //设置列宽  A,B,C ,D,E,F,G ,H,I   ,J,K,L
        int[] cellWidth={9,10,9,5,26,10,13,11,11,10,29};   
        for(int i=0;i<11;i++)
            sheet.setColumnView(i, cellWidth[i]);
        }
    catch(FileNotFoundException e){
        throw new Exception("Excel文件保存路径不存在!");
    }
    catch(IOException e){
        throw new Exception("Excel文件写文件失败!");
    }
}

根据自身需要设置多种不同的单元格格式:

    WritableCellFormat contentFormateNoBorder_Left = new WritableCellFormat(contentFont);
    //水平方向对齐--靠左        
    contentFormateNoBorder_Left.setAlignment(Alignment.LEFT);           
    // 垂直方向对齐--居中
    contentFormateNoBorder_Left.setVerticalAlignment(VerticalAlignment.CENTRE);
    // --全细边框
    contentFormateNoBorder_Left.setBorder(Border.ALL, BorderLineStyle.THIN);

填充数据:

一:设置excel行高与合并单元格

    //设置第row+1行高度为360(此处的row对应excel中的行数)
    sheet.setRowView(row,360);
    //合并第row+1行的第col1列和col2列之间的列
    sheet.mergeCells(col1,row,col2,row);

二:文本格式数据填充

sheet.addCell(new Label(col1, row,"待填充数据", "上面提到的所需单元格格式"));

三:数据格式数据填充

    //设置excel对应单元格格式
    /**如果不知道格式怎么写,打开excel,点选任意一个单元格,右键--设置单元格格式--数字--自定义,选择任意格式之后,拷贝类型中的字符串即可*/
    NumberFormat money = new jxl.write.NumberFormat("¥ #,##0.00"); 
    //设置单元格格式时在构造函数添加上数字格式
    WritableCellFormat contentFormateMoney = new WritableCellFormat(contentFont,money);
    //同上设置单元格格式
    contentFormateMoney.setAlignment(Alignment.CENTRE);

    /**此时需要先设置好金额再给sheet,否则生成的excel虽然是数字格式但是内容还是文本方式显示,需要双击单元格之后里面的数字才会变为设置好的数字格式*/
    jxl.write.Number labelNF = new jxl.write.Number(3, row, QcheckAmount, contentFormateMoney); 
    sheet.addCell(labelNF);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值