异常代码
String fileName = TestFileUtil.getPath() + "repeatedWrite" + System.currentTimeMillis() + ".xlsx";
// 这里 指定文件
ExcelWriter excelWriter = EasyExcel.write(fileName).build();
CountDownLatch countDownLatch = new CountDownLatch(5);
// 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来。这里最终会写到5个sheet里面
for (int i = 0; i < 5; i++) {
// 每次都要创建writeSheet 这里注意必须指定sheetNo。这里注意DemoData.class 可以每次都变,我这里为了方便 所以用的同一个class 实际上可以一直变
WriteSheet writeSheet = EasyExcel.writerSheet(i, "模板"+i).head(head()).build();
// 分页去数据库查询数据 这里可以去数据库查询每一页的数据
taskExecutor.execute(()->write(countDownLatch,excelWriter, writeSheet));
}
/// 千万别忘记finish 会帮忙关闭流
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
excelWriter.finish();
private void write(CountDownLatch countDownLatch,ExcelWriter excelWriter, WriteSheet writeSheet) {
List<DemoData> data = data();
excelWriter.write(data, writeSheet);
countDownLatch.countDown();
}
这里写你的代码
异常提示 请提供完整的异常提示,记住是全部异常! Exception in thread "Async-Service-1" org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidOperationException: You can't add a part with a part name derived from another part ! [M1.11] at org.apache.poi.POIXMLDocumentPart.createRelationship(POIXMLDocumentPart.java:533) at org.apache.poi.xssf.usermodel.XSSFWorkbook.createSheet(XSSFWorkbook.java:876) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:679) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:90) at com.alibaba.excel.util.WorkBookUtil.createSheet(WorkBookUtil.java:66) at com.alibaba.excel.context.WriteContextImpl.initSheet(WriteContextImpl.java:154) at com.alibaba.excel.context.WriteContextImpl.currentSheet(WriteContextImpl.java:131) at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:56) at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:161) at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:146) at com.bingkun.weixin.controller.GreetingController.write(GreetingController.java:77) at com.bingkun.weixin.controller.GreetingController.lambda$download$0(GreetingController.java:62) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.poi.openxml4j.exceptions.InvalidOperationException: You can't add a part with a part name derived from another part ! [M1.11] at org.apache.poi.openxml4j.opc.PackagePartCollection.put(PackagePartCollection.java:63) at org.apache.poi.openxml4j.opc.OPCPackage.createPart(OPCPackage.java:896) at org.apache.poi.openxml4j.opc.OPCPackage.createPart(OPCPackage.java:833) at org.apache.poi.POIXMLDocumentPart.createRelationship(POIXMLDocumentPart.java:513) ... 14 more Exception in thread "Async-Service-2" org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidOperationException: You can't add a part with a part name derived from another part ! [M1.11] at org.apache.poi.POIXMLDocumentPart.createRelationship(POIXMLDocumentPart.java:533) at org.apache.poi.xssf.usermodel.XSSFWorkbook.createSheet(XSSFWorkbook.java:876) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:679) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:90) at com.alibaba.excel.util.WorkBookUtil.createSheet(WorkBookUtil.java:66) at com.alibaba.excel.context.WriteContextImpl.initSheet(WriteContextImpl.java:154) at com.alibaba.excel.context.WriteContextImpl.currentSheet(WriteContextImpl.java:131) at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:56) at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:161) at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:146) at com.bingkun.weixin.controller.GreetingController.write(GreetingController.java:77) at com.bingkun.weixin.controller.GreetingController.lambda$download$0(GreetingController.java:62) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.poi.openxml4j.exceptions.InvalidOperationException: You can't add a part with a part name derived from another part ! [M1.11] at org.apache.poi.openxml4j.opc.PackagePartCollection.put(PackagePartCollection.java:63) at org.apache.poi.openxml4j.opc.OPCPackage.createPart(OPCPackage.java:896) at org.apache.poi.openxml4j.opc.OPCPackage.createPart(OPCPackage.java:833) at org.apache.poi.POIXMLDocumentPart.createRelationship(POIXMLDocumentPart.java:513) ... 14 more Exception in thread "Async-Service-5" org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidOperationException: You can't add a part with a part name derived from another part ! [M1.11] at org.apache.poi.POIXMLDocumentPart.createRelationship(POIXMLDocumentPart.java:533) at org.apache.poi.xssf.usermodel.XSSFWorkbook.createSheet(XSSFWorkbook.java:876) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:679) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:90) at com.alibaba.excel.util.WorkBookUtil.createSheet(WorkBookUtil.java:66) at com.alibaba.excel.context.WriteContextImpl.initSheet(WriteContextImpl.java:154) at com.alibaba.excel.context.WriteContextImpl.currentSheet(WriteContextImpl.java:131) at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:56) at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:161) at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:146) at com.bingkun.weixin.controller.GreetingController.write(GreetingController.java:77) at com.bingkun.weixin.controller.GreetingController.lambda$download$0(GreetingController.java:62) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.poi.openxml4j.exceptions.InvalidOperationException: You can't add a part with a part name derived from another part ! [M1.11] at org.apache.poi.openxml4j.opc.PackagePartCollection.put(PackagePartCollection.java:63) at org.apache.poi.openxml4j.opc.OPCPackage.createPart(OPCPackage.java:896) at org.apache.poi.openxml4j.opc.OPCPackage.createPart(OPCPackage.java:833) at org.apache.poi.POIXMLDocumentPart.createRelationship(POIXMLDocumentPart.java:513) ... 14 more Exception in thread "Async-Service-3" org.apache.poi.openxml4j.exceptions.PartAlreadyExistsException: A part with the name '/xl/worksheets/sheet1.xml' already exists : Packages shall not contain equivalent part names and package implementers shall neither create nor recognize packages with equivalent part names. [M1.12] at org.apache.poi.openxml4j.opc.OPCPackage.createPart(OPCPackage.java:869) at org.apache.poi.openxml4j.opc.OPCPackage.createPart(OPCPackage.java:833) at org.apache.poi.POIXMLDocumentPart.createRelationship(POIXMLDocumentPart.java:513) at org.apache.poi.xssf.usermodel.XSSFWorkbook.createSheet(XSSFWorkbook.java:876) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:679) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:90) at com.alibaba.excel.util.WorkBookUtil.createSheet(WorkBookUtil.java:66) at com.alibaba.excel.context.WriteContextImpl.initSheet(WriteContextImpl.java:154) at com.alibaba.excel.context.WriteContextImpl.currentSheet(WriteContextImpl.java:131) at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:56) at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:161) at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:146) at com.bingkun.weixin.controller.GreetingController.write(GreetingController.java:77) at com.bingkun.weixin.controller.GreetingController.lambda$download$0(GreetingController.java:62) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) 建议描述