From 3bc4c29356fc7cf4e30cd7ff784b2ee92822e79d Mon Sep 17 00:00:00 2001 From: youseries Date: Wed, 30 Jan 2019 09:58:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=8A=A5=E8=A1=A8=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=9C=A8=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E5=87=BA=E7=8E=B0=E5=BC=82=E5=B8=B8=E6=97=B6?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E6=8A=9B=E5=87=BA=E5=BC=82=E5=B8=B8=EF=BC=8C?= =?UTF-8?q?=E8=80=8C=E4=B8=8D=E6=98=AF=E4=B8=8B=E8=BD=BD=E5=8C=85=E5=90=AB?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E7=9A=84=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/ExportExcelServletAction.java | 62 ++++++++++--------- .../console/pdf/ExportPdfServletAction.java | 50 ++++++++------- .../console/word/ExportWordServletAction.java | 42 +++++++------ 3 files changed, 86 insertions(+), 68 deletions(-) diff --git a/ureport2-console/src/main/java/com/bstek/ureport/console/excel/ExportExcelServletAction.java b/ureport2-console/src/main/java/com/bstek/ureport/console/excel/ExportExcelServletAction.java index 80f1060..60b1054 100644 --- a/ureport2-console/src/main/java/com/bstek/ureport/console/excel/ExportExcelServletAction.java +++ b/ureport2-console/src/main/java/com/bstek/ureport/console/excel/ExportExcelServletAction.java @@ -31,6 +31,7 @@ import com.bstek.ureport.console.cache.TempObjectCache; import com.bstek.ureport.console.exception.ReportDesignException; import com.bstek.ureport.definition.ReportDefinition; import com.bstek.ureport.exception.ReportComputeException; +import com.bstek.ureport.exception.ReportException; import com.bstek.ureport.export.ExportConfigure; import com.bstek.ureport.export.ExportConfigureImpl; import com.bstek.ureport.export.ExportManager; @@ -69,38 +70,43 @@ public class ExportExcelServletAction extends BaseServletAction { if(StringUtils.isBlank(file)){ throw new ReportComputeException("Report file can not be null."); } - String fileName=req.getParameter("_n"); - fileName=buildDownloadFileName(file, fileName, ".xlsx"); - resp.setContentType("application/octet-stream;charset=ISO8859-1"); - fileName=new String(fileName.getBytes("UTF-8"),"ISO8859-1"); - resp.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\""); - Map parameters = buildParameters(req); OutputStream outputStream=resp.getOutputStream(); - if(file.equals(PREVIEW_KEY)){ - ReportDefinition reportDefinition=(ReportDefinition)TempObjectCache.getObject(PREVIEW_KEY); - if(reportDefinition==null){ - throw new ReportDesignException("Report data has expired,can not do export excel."); - } - Report report=reportBuilder.buildReport(reportDefinition, parameters); - if(withPage){ - excelProducer.produceWithPaging(report, outputStream); - }else if(withSheet){ - excelProducer.produceWithSheet(report, outputStream); - }else{ - excelProducer.produce(report, outputStream); - } - }else{ - ExportConfigure configure=new ExportConfigureImpl(file,parameters,outputStream); - if(withPage){ - exportManager.exportExcelWithPaging(configure); - }else if(withSheet){ - exportManager.exportExcelWithPagingSheet(configure); + try { + String fileName=req.getParameter("_n"); + fileName=buildDownloadFileName(file, fileName, ".xlsx"); + resp.setContentType("application/octet-stream;charset=ISO8859-1"); + fileName=new String(fileName.getBytes("UTF-8"),"ISO8859-1"); + resp.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\""); + Map parameters = buildParameters(req); + if(file.equals(PREVIEW_KEY)){ + ReportDefinition reportDefinition=(ReportDefinition)TempObjectCache.getObject(PREVIEW_KEY); + if(reportDefinition==null){ + throw new ReportDesignException("Report data has expired,can not do export excel."); + } + Report report=reportBuilder.buildReport(reportDefinition, parameters); + if(withPage){ + excelProducer.produceWithPaging(report, outputStream); + }else if(withSheet){ + excelProducer.produceWithSheet(report, outputStream); + }else{ + excelProducer.produce(report, outputStream); + } }else{ - exportManager.exportExcel(configure); + ExportConfigure configure=new ExportConfigureImpl(file,parameters,outputStream); + if(withPage){ + exportManager.exportExcelWithPaging(configure); + }else if(withSheet){ + exportManager.exportExcelWithPagingSheet(configure); + }else{ + exportManager.exportExcel(configure); + } } + }catch(Exception ex) { + throw new ReportException(ex); + }finally { + outputStream.flush(); + outputStream.close(); } - outputStream.flush(); - outputStream.close(); } public void setReportBuilder(ReportBuilder reportBuilder) { diff --git a/ureport2-console/src/main/java/com/bstek/ureport/console/pdf/ExportPdfServletAction.java b/ureport2-console/src/main/java/com/bstek/ureport/console/pdf/ExportPdfServletAction.java index e48064a..e6adbd2 100644 --- a/ureport2-console/src/main/java/com/bstek/ureport/console/pdf/ExportPdfServletAction.java +++ b/ureport2-console/src/main/java/com/bstek/ureport/console/pdf/ExportPdfServletAction.java @@ -33,6 +33,7 @@ import com.bstek.ureport.console.exception.ReportDesignException; import com.bstek.ureport.definition.Paper; import com.bstek.ureport.definition.ReportDefinition; import com.bstek.ureport.exception.ReportComputeException; +import com.bstek.ureport.exception.ReportException; import com.bstek.ureport.export.ExportConfigure; import com.bstek.ureport.export.ExportConfigureImpl; import com.bstek.ureport.export.ExportManager; @@ -68,31 +69,36 @@ public class ExportPdfServletAction extends BaseServletAction{ if(StringUtils.isBlank(file)){ throw new ReportComputeException("Report file can not be null."); } - String fileName=req.getParameter("_n"); - fileName=buildDownloadFileName(file, fileName, ".pdf"); - fileName=new String(fileName.getBytes("UTF-8"),"ISO8859-1"); - if(forPrint){ - resp.setContentType("application/pdf"); - resp.setHeader("Content-Disposition","inline;filename=\"" + fileName + "\""); - }else{ - resp.setContentType("application/octet-stream;charset=ISO8859-1"); - resp.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\""); - } - Map parameters = buildParameters(req); OutputStream outputStream=resp.getOutputStream(); - if(file.equals(PREVIEW_KEY)){ - ReportDefinition reportDefinition=(ReportDefinition)TempObjectCache.getObject(PREVIEW_KEY); - if(reportDefinition==null){ - throw new ReportDesignException("Report data has expired,can not do export pdf."); + try { + String fileName=req.getParameter("_n"); + fileName=buildDownloadFileName(file, fileName, ".pdf"); + fileName=new String(fileName.getBytes("UTF-8"),"ISO8859-1"); + if(forPrint){ + resp.setContentType("application/pdf"); + resp.setHeader("Content-Disposition","inline;filename=\"" + fileName + "\""); + }else{ + resp.setContentType("application/octet-stream;charset=ISO8859-1"); + resp.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\""); } - Report report=reportBuilder.buildReport(reportDefinition, parameters); - pdfProducer.produce(report, outputStream); - }else{ - ExportConfigure configure=new ExportConfigureImpl(file,parameters,outputStream); - exportManager.exportPdf(configure); + Map parameters = buildParameters(req); + if(file.equals(PREVIEW_KEY)){ + ReportDefinition reportDefinition=(ReportDefinition)TempObjectCache.getObject(PREVIEW_KEY); + if(reportDefinition==null){ + throw new ReportDesignException("Report data has expired,can not do export pdf."); + } + Report report=reportBuilder.buildReport(reportDefinition, parameters); + pdfProducer.produce(report, outputStream); + }else{ + ExportConfigure configure=new ExportConfigureImpl(file,parameters,outputStream); + exportManager.exportPdf(configure); + } + }catch(Exception ex) { + throw new ReportException(ex); + }finally { + outputStream.flush(); + outputStream.close(); } - outputStream.flush(); - outputStream.close(); } public void newPaging(HttpServletRequest req, HttpServletResponse resp) throws IOException { diff --git a/ureport2-console/src/main/java/com/bstek/ureport/console/word/ExportWordServletAction.java b/ureport2-console/src/main/java/com/bstek/ureport/console/word/ExportWordServletAction.java index 219d215..c068aa9 100644 --- a/ureport2-console/src/main/java/com/bstek/ureport/console/word/ExportWordServletAction.java +++ b/ureport2-console/src/main/java/com/bstek/ureport/console/word/ExportWordServletAction.java @@ -31,6 +31,7 @@ import com.bstek.ureport.console.cache.TempObjectCache; import com.bstek.ureport.console.exception.ReportDesignException; import com.bstek.ureport.definition.ReportDefinition; import com.bstek.ureport.exception.ReportComputeException; +import com.bstek.ureport.exception.ReportException; import com.bstek.ureport.export.ExportConfigure; import com.bstek.ureport.export.ExportConfigureImpl; import com.bstek.ureport.export.ExportManager; @@ -62,26 +63,31 @@ public class ExportWordServletAction extends BaseServletAction { if(StringUtils.isBlank(file)){ throw new ReportComputeException("Report file can not be null."); } - String fileName=req.getParameter("_n"); - fileName=buildDownloadFileName(file, fileName, ".docx"); - fileName=new String(fileName.getBytes("UTF-8"),"ISO8859-1"); - resp.setContentType("application/octet-stream;charset=ISO8859-1"); - resp.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\""); - Map parameters = buildParameters(req); OutputStream outputStream=resp.getOutputStream(); - if(file.equals(PREVIEW_KEY)){ - ReportDefinition reportDefinition=(ReportDefinition)TempObjectCache.getObject(PREVIEW_KEY); - if(reportDefinition==null){ - throw new ReportDesignException("Report data has expired,can not do export word."); - } - Report report=reportBuilder.buildReport(reportDefinition, parameters); - wordProducer.produce(report, outputStream); - }else{ - ExportConfigure configure=new ExportConfigureImpl(file,parameters,outputStream); - exportManager.exportWord(configure); + try { + String fileName=req.getParameter("_n"); + fileName=buildDownloadFileName(file, fileName, ".docx"); + fileName=new String(fileName.getBytes("UTF-8"),"ISO8859-1"); + resp.setContentType("application/octet-stream;charset=ISO8859-1"); + resp.setHeader("Content-Disposition","attachment;filename=\"" + fileName + "\""); + Map parameters = buildParameters(req); + if(file.equals(PREVIEW_KEY)){ + ReportDefinition reportDefinition=(ReportDefinition)TempObjectCache.getObject(PREVIEW_KEY); + if(reportDefinition==null){ + throw new ReportDesignException("Report data has expired,can not do export word."); + } + Report report=reportBuilder.buildReport(reportDefinition, parameters); + wordProducer.produce(report, outputStream); + }else{ + ExportConfigure configure=new ExportConfigureImpl(file,parameters,outputStream); + exportManager.exportWord(configure); + } + }catch(Exception ex) { + throw new ReportException(ex); + }finally { + outputStream.flush(); + outputStream.close(); } - outputStream.flush(); - outputStream.close(); } public void setReportBuilder(ReportBuilder reportBuilder) {