poi导出excel后台代码示例

    @Override
    public HSSFWorkbook exportExcel(List<Xx> list) 
    {
        HSSFWorkbook wb=new HSSFWorkbook();  
        HSSFSheet sheet=wb.createSheet();   //工作表
        HSSFRow row = null;      //行对象
        HSSFCell cell=null;    //单元格对象
        CellRangeAddress cra=null;  //用于合并单元格

        //设置单元格样式1,字体加粗居中可换行,用于标题样式
        HSSFCellStyle style1=wb.createCellStyle();
        style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        style1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
        HSSFFont font1=wb.createFont();
        font1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        style1.setFont(font1);
        style1.setWrapText(true);
        setBorder(style1); //添加边框

        //设置单元格样式2,居中可换行,用于普通样式
        HSSFCellStyle style2=wb.createCellStyle();
        style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
        style2.setWrapText(true);
        setBorder(style2);//添加边框

        //行索引变量
        int rowIndex=0;

        //总列数
        int cellCount=5;

        //设置标题
        String title="xx表";


        //创建标题行
        row=sheet.createRow(rowIndex++); //创建行对象
        cell=row.createCell(0);  //创建单元格
        cell.setCellValue(title);  //设置单元格内容
        cell.setCellStyle(style1);  //设置单元格样式

        /*合并单元格,标题占5列*/
        //参数:(起始行,结束行,起始列,结束列)从0开始,
        cra=new CellRangeAddress(rowIndex-1, rowIndex-1, 0, 4);
        sheet.addMergedRegion(cra);
        setBorder(cra,sheet,wb);//合并的单元格设置边框

        //表头
        String[] header=new String[5];
        header[0]="序号";
        header[1]="字段1";
        header[2]="字段2";
        header[3]="字段3";
        header[4]="字段4";

        row=sheet.createRow(rowIndex++);
        for(int i=0;i<header.length;i++)
        {
            cell=row.createCell(i);
            cell.setCellValue(header[i]);
            cell.setCellStyle(style1);
        }

        //创建数据行     
        for(int i=0;i<List.size();i++)
        {
            Xx xx=List.get(i);
            row=sheet.createRow(rowIndex++);
            cell=row.createCell(0);
            cell.setCellValue(i+1);
            cell.setCellStyle(style2);

            cell=row.createCell(1);
            cell.setCellValue(xx.get1());
            cell.setCellStyle(style2);

            cell=row.createCell(2);
            cell.setCellValue(xx.get2());
            cell.setCellStyle(style2);

            cell=row.createCell(3);
            cell.setCellValue(xx.get3());
            cell.setCellStyle(style2);

            cell=row.createCell(4);
            cell.setCellValue(xx.get4());
            cell.setCellStyle(style2);

        }       

        return wb;
    }


    /**
     * 对合并的单元格设置边框
     * @param cra
     * @param sheet
     * @param wb
     */
    private void setBorder(CellRangeAddress cra,HSSFSheet
     sheet,HSSFWorkbook wb)
    {
        RegionUtil.setBorderBottom(1, cra, sheet,wb); // 下边框
        RegionUtil.setBorderLeft(1, cra, sheet,wb); // 左边框
        RegionUtil.setBorderRight(1, cra, sheet,wb); // 有边框
        RegionUtil.setBorderTop(1, cra, sheet,wb); // 上边框
    }

    /**
     * 对单个单元格设置边框
     * @param style
     */
    private void setBorder(HSSFCellStyle style)
    {
        style.setBorderBottom(HSSFBorderFormatting.BORDER_THIN);
        style.setBorderLeft(HSSFBorderFormatting.BORDER_THIN);
        style.setBorderRight(HSSFBorderFormatting.BORDER_THIN);
        style.setBorderTop(HSSFBorderFormatting.BORDER_THIN);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值