poi导出excel后台代码示例

来源:互联网 发布:网络包装公司是干嘛的 编辑:程序博客网 时间:2024/06/05 19:28
    @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);    }
原创粉丝点击