关于使用POI实现excel导出

1.从网上下载POI包导入项目,重启项目

          //处理导出文件名乱码情况

         String fileName = "账户明细账.xls";
        String agent =request.getHeader("USER-AGENT").toLowerCase(); //判断浏览器
        try {
            if (agent.indexOf("firefox") > -1) {//浏览器为火狐
                fileName = new String(fileName.getBytes("UTF-8"),"ISO-8859-1");
            }else{//默认浏览器为IE,其他浏览器皆可用
                fileName = URLEncoder.encode(fileName, response.getCharacterEncoding());
            }
        } catch (Exception e) {
            // TODO: handle exception
        }

        response.setHeader("Content-Disposition","attachment;filename="+fileName);
        response.setContentType("application/ vnd.ms-excel");

        HSSFWorkbook wb = new HSSFWorkbook();

        // 创建Excel的工作sheet,对应到一个excel文档的tab
        HSSFSheet sheet = wb.createSheet("sheet1");

        // 设置excel每列宽度
        sheet.setColumnWidth(0, 2000);
        sheet.setColumnWidth(1, 4000);
        sheet.setColumnWidth(3, 4000);
        sheet.setColumnWidth(6, 4000);
        sheet.setColumnWidth(10, 4000);
        sheet.setColumnWidth(9, 4000);
        sheet.setColumnWidth(21, 4000);
        // 创建字体样式
        HSSFFont font = wb.createFont();
        font.setFontName("Verdana");
        font.setBoldweight((short) 100);
        font.setFontHeight((short) 300);
        font.setColor(HSSFColor.BLUE.index);

        // 创建单元格样式
        HSSFCellStyle style = wb.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
        style.setFillForegroundColor(HSSFColor.LIGHT_TURQUOISE.index);
        style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);



        style.setFont(font);// 设置字体





        // 创建Excel的sheet的一行
        HSSFRow row = sheet.createRow(0);
        row.setHeight((short) 500);// 设定行的高度
        // 创建一个Excel的单元格
        HSSFCell cell = row.createCell(0);
        // 合并单元格(startRow,endRow,startColumn,endColumn)
        sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 30));

        // 给Excel的单元格设置样式和赋值
        cell.setCellStyle(style);
        cell.setCellValue("行政事业单位资产清查表(土地)");








        HSSFRow row1 = sheet.createRow(1);

        // 设置单元格内容格式
        //        style1.setWrapText(true);// 自动换行
        // 设置单元格的样式格式
        cell = row1.createCell(0);
        sheet.addMergedRegion(new CellRangeAddress(1, 1, 0, 30));
        HSSFCellStyle style1 = wb.createCellStyle();
        style1.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
        cell.setCellStyle(style1);
        cell.setCellValue("资产清查 02-18 表");





        HSSFRow row2 = sheet.createRow(2);

        HSSFCellStyle style2 = wb.createCellStyle();
        style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

//         style2.setBorderBottom(HSSFCellStyle.BORDER_THICK);
//         style2.setBorderLeft(HSSFCellStyle.BORDER_THICK);
//         style2.setBorderRight(HSSFCellStyle.BORDER_THICK);
//         style2.setBorderTop(HSSFCellStyle.BORDER_THICK);



        style2.setWrapText(true);// 自动换行


        HSSFCellStyle style3 = wb.createCellStyle();
        style3.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        style3.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
        style3.setWrapText(true);// 自动换行

        cell = row2.createCell(0);
        cell.setCellStyle(style3);
        cell.setCellValue("填报单位:");
        sheet.addMergedRegion(new CellRangeAddress(2,2,0,1));


        cell = row2.createCell(2);
        cell.setCellValue("值");
        cell.setCellStyle(style1);
        cell.setCellValue("金额单位:元");
        sheet.addMergedRegion(new CellRangeAddress(2,2,2,30));



。。。。省略类似代码。。。



         wb.write(response.outputStream);
        response.outputStream.flush();
        response.outputStream.close();




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值