Java对excel中的sheet进行拷贝


近段时间做一个excel的导出功能,在网上查询了很多方法,发现都很难解决我目前的困难,偶尔查询到POI修改sheetname这个问题,有了解决方法

以下为参考链接及本人部分代码

参考地址:https://blog.csdn.net/qq_42835445/article/details/87981861

如有侵权,请联络删除,谢谢

部分代码及注释:

//因为有excel模板,但又不想直接在模板上进行操作,所以先获取文件流信息,模板为xlsx,请自行修改

//使用文件路径读入文件流,因为我的是模板,我是知道路径的

FileInputStream fis = new FileInputStream("src/main/resources/template/ScheduleModel.xlsx");

//创建一个新的excel并读入文件流,读取之后记得关闭流

XSSFWorkbook wk = new XSSFWorkbook(fis);
fis.close();

// 模板内容已经写入了新建的excel,第一个sheet为模板sheet
XSSFSheet fromsheet = wk.getSheetAt(0);

// 新表创建sheet
XSSFSheet sheet = null;
XSSFRow row = null;

//之后就是新文件之内的sheet操作了,要根据模板sheet创建新sheet,直接克隆就可以了

int sheetNum = 1;

sheet = wk.cloneSheet(0);//克隆第一个sheet,因为我后续要对克隆的sheet直接进行操作,所以就直接这样写了
sheetNum++;//获取sheet页数量,也可以使用原生方法int sheetNum = wk.getNumberOfSheets();
wk.setSheetName(sheetNum-1, sheetname);//修改新生成的sheet页名称

 

以上就是代码部分了,可以自行追加逻辑来确认是否克隆新的sheet,

 

这个方法比起字节流一行一行读方便很多,唯一的问题是没办法对内容进行筛选。

但如果仅是对模板进行操作,这种方法是我找到的最方便的了,如果有其他方案,可以发给我,谢谢。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM