From b6d2a806e6572ffc4c226c91f0a60b31a7b1fbc0 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 05 三月 2024 14:02:33 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java | 15 +++++++++++++++ server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java | 34 ++++++++++++++++++++++++++++++---- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java index 4ddccfc..a98cbd2 100644 --- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java +++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java @@ -21,6 +21,7 @@ import java.io.*; import java.lang.reflect.Field; import java.lang.reflect.Method; +import java.net.URL; import java.net.URLEncoder; import java.nio.charset.Charset; import java.text.SimpleDateFormat; @@ -885,10 +886,12 @@ sxssfWorkbook.write(out); byte [] bookByteAry = out.toByteArray(); InputStream in = new ByteArrayInputStream(bookByteAry); + String tempExcel = saveIsToFile(in); String tempPdf =System.getProperty("java.io.tmpdir")+File.separator+UUID.randomUUID().toString()+".pdf"; - ExcelToPdfTool.excelToPdf(in,tempPdf);//杞琍DF +// ExcelToPdfTool.excelToPdf(in,tempPdf);//杞琍DF + ExcelToPdfTool.excelToPdf(tempExcel,tempPdf);//杞琍DF File f = new File(tempPdf); - if(f!=null && f.isFile()){ + if(f!=null && f.isFile() && f.length()>0){ return tempPdf; } } catch (Exception e) { @@ -1108,10 +1111,12 @@ sxssfWorkbook.write(out); byte [] bookByteAry = out.toByteArray(); InputStream in = new ByteArrayInputStream(bookByteAry); + String tempExcel = saveIsToFile(in); String tempPdf =System.getProperty("java.io.tmpdir")+File.separator+UUID.randomUUID().toString()+".pdf"; - ExcelToPdfTool.excelToPdf(in,tempPdf);//杞琍DF +// ExcelToPdfTool.excelToPdf(in,tempPdf);//杞琍DF + ExcelToPdfTool.excelToPdf(tempExcel,tempPdf);//杞琍DF File f = new File(tempPdf); - if(f!=null && f.isFile()){ + if(f!=null && f.isFile() && f.length()>0){ return tempPdf; } } catch (Exception e) { @@ -1120,6 +1125,27 @@ return null; } + private String saveIsToFile(InputStream inputStream) { + try { + String fileName =System.getProperty("java.io.tmpdir")+File.separator+UUID.randomUUID().toString()+".xlsx"; + File file = new File(fileName); // 鎸囧畾淇濆瓨鍒版湰鍦扮殑鏂囦欢鍚嶅強璺緞 + file.createNewFile(); + OutputStream outputStream = new FileOutputStream(file); + byte[] buffer = new byte[1024]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); + } + + outputStream.close(); + inputStream.close(); + return fileName; + }catch (Exception e){ + + } + return null; + } + @Data @AllArgsConstructor diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java index 517deba..07f459e 100644 --- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java +++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelToPdfTool.java @@ -2,6 +2,7 @@ import com.spire.xls.Workbook; import com.spire.xls.Worksheet; +import java.io.File; import java.io.InputStream; /** @@ -56,5 +57,19 @@ worksheet.saveToPdf(outputPdfPath); } + public static void excelToPdf(String file, String outputPdfPath) { + //鍒涘缓Workbook 瀹炰緥骞跺姞杞界ず渚嬫枃妗� + Workbook workbook = new Workbook(); + workbook.loadFromFile(file); + //杞崲鏃惰缃伐浣滆〃閫傚簲瀹藉害 + workbook.getConverterSetting().setSheetFitToWidth(true); + + //鑾峰彇绗竴涓伐浣滆〃 + Worksheet worksheet = workbook.getWorksheets().get(0); + + //淇濆瓨涓篜DF鏂囨。鏍煎紡 + worksheet.saveToPdf(outputPdfPath); + + } } -- Gitblit v1.9.3