alibaba / easyexcel

快速、简洁、解决大文件内存溢出的java处理Excel工具
https://easyexcel.opensource.alibaba.com
Apache License 2.0
32.09k stars 7.5k forks source link

关于基于EasyExcel实现cloneSheet #2633

Open Mr-ZBH opened 2 years ago

Mr-ZBH commented 2 years ago

import com.alibaba.excel.util.StringUtils; import com.alibaba.excel.write.builder.ExcelWriterBuilder; import com.alibaba.excel.write.handler.SheetWriteHandler; import com.alibaba.excel.write.handler.WorkbookWriteHandler; import com.alibaba.excel.write.handler.WriteHandler; import com.alibaba.excel.write.handler.context.SheetWriteHandlerContext; import com.alibaba.excel.write.handler.context.WorkbookWriteHandlerContext; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;

import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.ss.usermodel.Workbook;

import java.util.List; import java.util.concurrent.atomic.AtomicInteger;

import lombok.extern.log4j.Log4j2;

/**

sasuke1199 commented 2 years ago

源码中创建WorkBook的时候,使用的就是XSSFWorkBook设置到cachedWorkBook中。这个的实现没有禁用clone方法。你默认的inMemory(false)实现的是SXSSFWorkBook。这个实现是禁用了clone方法。这两者其他区别还需要仔细研究一下。不过为了方便模板拷贝,使用XSSFWorkBook是比较方便的。 image