java实时向zip中写excel文件并通过浏览器实现下载

来源:互联网 发布:java怎么调试错误 编辑:程序博客网 时间:2024/03/28 21:44
@RequestMapping(value = "exportFunderZip", method = RequestMethod.GET)public void exportFunderZip(HttpServletResponse response,Integer financeId)throws Exception{        // 设置浏览器返回的文件类型和文件名        response.setContentType("application/ostet-stream");        response.setHeader("Content-disposition","attachment;filename="+new String("金融数据报表.zip".getBytes("gbk"),"iso-8859-1"));        response.setBufferSize(1024);        // 开启zip输出流        ZipOutputStream zos=new ZipOutputStream(response.getOutputStream());        exportFunderInvoiceData(financeId,zos);        exportFunderLogisticsData(financeId,zos);        exportFunderOrderItemData(financeId,zos);        exportFunderPurchaseData(financeId,zos);        exportFunderSaleorderData(financeId,zos);        exportFunderSupplierCompanyData(financeId,zos);        // 关闭zip输出流        zos.close();        }



public void exportFunderInvoiceData(Integer financeId, ZipOutputStream zos) throws Exception {        List<FunderInvoiceDataInfo> funderInvoiceDataInfos = new FinanceDataTransferServiceClient().funderInvoiceDataExport(financeId);        Map<String, String> fieldNameMap = new LinkedHashMap<String, String>();        fieldNameMap.put("transCode", "结算类型");        fieldNameMap.put("clearStatus", "结算状态");        fieldNameMap.put("amount", "金额");        // 设置要保存到压缩包中的文件名和路径        ZipEntry zipEntry = new ZipEntry("结算信息报表.xls");        // 开启一个新的输出流        zos.putNextEntry(zipEntry);        new ExcelFileGeneratorUtils(fieldNameMap, funderInvoiceDataInfos).expordExcel(zos);        // 关闭新的输出流        zos.closeEntry();        }



/** * @param os 输出流 * @Description: 将excel中的数据写到输出流中,用于文件的输出 * @author jiangepng * @date 2017/12/1 11:33 */public Boolean expordExcel(OutputStream os) {        try {        workBook = createWorkbook();        // 写入excel 到输出流        workBook.write(os);        // 如果是ZipOutputStream则不关闭        if(!(os instanceof ZipOutputStream)){        os.close();        }        return true;        } catch (Exception e) {        logger.error(e.getMessage(), e);        return false;        }        }


阅读全文
0 0