java导出excel引入easyexcel自定义

本文介绍如何使用EasyExcel库从Java应用程序导出带有样式和多页的Excel文件。通过示例代码展示了如何创建工作簿、设置单元格样式、创建表格和设置列宽等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

		<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
          <version>2.1.4</version>
        </dependency>
 @Override
    public void exportBmdMbExcel(BmdQuery query, HttpServletResponse response) throws IOException {
        //创建HSSFWorkbook对象
        Workbook wb = new XSSFWorkbook();
        String fileName ="单位模板";

        // 设置style1的样式,此样式运用在第二行
        CellStyle style1 = wb.createCellStyle();// cell样式
        // 设置单元格背景色,设置单元格背景色以下两句必须同时设置
        style1.setFillPattern(FillPatternType.SOLID_FOREGROUND);// 设置填充样式
        style1.setFillForegroundColor(HSSFColor.SKY_BLUE.index);// 设置填充色
        // 设置单元格上、下、左、右的边框线
        style1.setBorderBottom(BorderStyle.THIN);
        style1.setBorderLeft(BorderStyle.THIN);
        style1.setBorderRight(BorderStyle.THIN);
        style1.setBorderTop(BorderStyle.THIN);
        Font font1 = wb.createFont();// 创建一个字体对象
        font1.setFontHeight((short) 10);// 设置字体的宽度
        font1.setFontHeightInPoints((short) 12);// 设置字体的高度
        font1.setBold(true);// 粗体显示
        style1.setFont(font1);// 设置style1的字体
        style1.setWrapText(false);// 设置自动换行
        style1.setAlignment(HorizontalAlignment.CENTER);// 设置单元格字体显示居中(左右方向)
        style1.setVerticalAlignment(VerticalAlignment.CENTER);// 设置单元格字体显示居中(上下方向)
 if ("230001".equals(query.getcKhlx())){
            //创建HSSFSheet对象
            Sheet sheet = wb.createSheet("sheet0");
            Sheet sheet1 = wb.createSheet("sheet1");
            wb.setSheetName(0,"楼盘");
            wb.setSheetName(1,"中介");     
            setHead(sheet, "1",style1);
            setHead(sheet1, "2",style1);


        }else{
            fileName="个人模板";
            Sheet sheet = wb.createSheet("sheet0");
            wb.setSheetName(0,"额度客户");
            setHead(sheet, "5", style1);
        }

        //响应类型为application/octet- stream情况下使用了这个头信息的话,那就意味着不想直接显示内容
        response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
        //attachment为以附件方式下载
        response.setHeader("Content-Disposition","attachment;filename=" + URLEncoder.encode(
                fileName + ".xlsx", "utf-8"));
        /**
         * 代码里面使用Content-Disposition来确保浏览器弹出下载对话框的时候。
         * response.addHeader("Content-Disposition","attachment");一定要确保没有做过关于禁止浏览器缓存的操作
         */
        response.setHeader("Cache-Control", "No-cache");
        response.flushBuffer();

        wb.write(response.getOutputStream());
        wb.close();
    private void setHead(Sheet sheet, String s, CellStyle style1) {
        List<XfdmbEntity> xfdmbEntities = xfdmbDao.selectXfdMb(s);
        //创建Row对象
        Row row = sheet.createRow(0);
        for (int i = 0; i < xfdmbEntities.size(); i++) {
            sheet.setColumnWidth(i, 20 * 256);
            //创建Cell对象
            Cell cell = row.createCell(i);
            cell.setCellStyle(style1);
            //设置单元格的值
            cell.setCellValue(xfdmbEntities.get(i).getcMblmc());
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值