java复制sheet_Java对excel中的sheet进行拷贝

 2023-09-07 阅读 15 评论 0

摘要:近段时间做一个excel的导出功能,在网上查询了很多方法,发现都很难解决我目前的困难,偶尔查询到POI修改sheetname这个问题,有了解决方法以下为参考链接及本人部分代码如有侵权,请联络删除,谢谢部分代码及注释://因为有excel模

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

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

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

部分代码及注释:

//因为有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,

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

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

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/16193.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息