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

近段时间做一个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,

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值