Excel的Sheet页复制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel的Sheet页复制相关的知识,希望对你有一定的参考价值。

最近在做一个项目,其中涉及基于模板对Excel的Sheet页进行复制。在网上尝试了很多,发现都不够完美,苦恼。

然后在查阅资料的过程中,发现有一篇提及,POI的API只对同一个Excel文件中的Sheet页复制提供了支持,没有对跨文件复制进行支持。看到这句话我很奇怪,同一个文件和跨文件有什么不同么,不都是对文件的读写。

等等,好像是想多了,不然以POI小分队的能力不会不支持的。

于是有了下面的代码。

 

try (HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(new FileInputStream("C:\\demo.xls")))) {
            HSSFWorkbook wbNew = new HSSFWorkbook();
            Sheet sheetNew = wb.createSheet("票据1");
            sheetNew = wb.cloneSheet(0);
            wb.setSheetName(1, "票据0");

try (FileOutputStream fileOut = new FileOutputStream("C:\\票据1.xls")) { wb.write(fileOut); } } catch (IOException e) { e.printStackTrace(); }

所谓复制到新文件嘛。用新的输出流写不就行了嘛。不过这个方法有两个问题。第一,不能设置新Sheet页的名字。第二,不支持xlsx文件。对我来说这都不是问题。实际还有第三个问题,多个文件中的内容复制到同一个文件中不知道行不行。想来是可以的,手工编辑一下模板就可以了。最后,建议使用C#编写三件套的应用,用Java调就行了。

以上是关于Excel的Sheet页复制的主要内容,如果未能解决你的问题,请参考以下文章

excel中整列复制时,提示不能对多重选定区域使用此命令,要怎么解决啊?

求问 java poi 导出多个sheet页

修改EXCEL

POI删除Excel的sheet页

前端如何实现将多页数据合并导出到Excel单Sheet页解决方案|内附代码

使用POI导出Excel-利用模板