设为首页 加入收藏

TOP

阿里EasyExcel快速导出demo(一)
2023-08-26 21:11:02 】 浏览:66
Tags:阿里 EasyExcel demo

引入阿里easyExcel依赖

       <!-- easyexcel -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.6</version>
            <exclusions>
                <exclusion>
                    <groupId>org.ehcache</groupId>
                    <artifactId>ehcache</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

自定义的阿里easyexcel拦截器方法


import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
import com.jerry.util.ExcelUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URL;


public class SheetWriteHandlerUtil implements SheetWriteHandler {

    private String title;
    private String[] header;
    private String imageurl;
    private String sheetName;
    private final Log log = LogFactory.getLog(getClass());

    public SheetWriteHandlerUtil(String title, String[] header, String imageurl, String sheetName) {
        this.title = title;
        this.header = header;
        this.imageurl = imageurl;
        this.sheetName = sheetName;
    }
    public SheetWriteHandlerUtil(String sheetName) {
        this.sheetName = sheetName;
    }


    @Override
    public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {

    }

    @Override
    public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
        Workbook workbook = writeWorkbookHolder.getWorkbook();
        Sheet sheet = workbook.getSheetAt(0);
        if (StringUtils.isNotEmpty(sheetName)){
            writeWorkbookHolder.getCachedWorkbook().setSheetName(0, sheetName);
        }
        if (StringUtils.isNotEmpty(title)){
            //设置标题
            Row row1 = sheet.createRow(0);
            row1.setHeight((short) 800);
            Cell cell = row1.createCell(0);
            //设置单元格内容
            cell.setCellValue(title);
            CellStyle cellStyle = workbook.createCellStyle();
            cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
            cellStyle.setAlignment(HorizontalAlignment.LEFT);
            Font font = workbook.createFont();
            font.setBold(true);
            font.setFontHeight((short) 400);
            cellStyle.setFont(font);
            cell.setCellStyle(cellStyle);
        }
        if (header != null){
            // 第一行大标题占位设置
            sheet.addMergedRegionUnsafe(new CellRangeAddress(0, 0, 0, header.length-1));
        }
        if(StringUtils.isNotEmpty(imageurl)){
            try {
                imagewrite(writeWorkbookHolder,writeSheetHolder,imageurl);
            } catch (IOException e) {
                e.printStackTrace();
                log.error("easyexcel拦截器图片流处理出错"+ e.getMessage());
            }
        }

    }
    public void imagewrite(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder,String imageurl) throws IOException {
        Workbook workbook = writeWorkbookHolder.getWorkbook();
        Sheet sheet = workbook.getSheetAt(0);
        try (ByteArrayOutputStream picOut = new ByteArrayOutputStream()) {
            //读图片并写入流
            BufferedImage bufferedImage = ImageIO
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Spring HandlerInterceptor工作机.. 下一篇《深入理解Java虚拟机》读书笔记..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目