POI EXCEL 文件导出
来源:互联网 发布:yum brand 编辑:程序博客网 时间:2024/04/27 16:14
poi excel 文件如果量过大的话,会导致java内存溢出错误,我的代码如下:
/** * @param workbook * @param fileType */ public void getAndFillSheet(Workbook workbook, Integer fileType, Map<String, XSSFCellStyle> styleMap, Map map, boolean Multi) { if (workbook != null && fileType != null && styleMap != null && map != null) { switch (fileType) { case 1: { //生成月份报表// List<BiReportProductWeeklySalesBean> model4 = getProductWeeklySales(); Sheet sheet = workbook.createSheet(ISheetInfo.SHOP.SHOPMONTHLY.headers1[0]); if (Multi) { sheet = biRepExcelFileCreator.createExcelFile(getMultiAllMonthlyData(map), getMMergeInfo(fileType), sheet, styleMap, ISheetInfo.MSHOP.MSHOPMONTHLY.headers1, ISheetInfo.MSHOP.MSHOPMONTHLY.headers2, ISheetInfo.MSHOP.MSHOPMONTHLY.headers3); } else { sheet = biRepExcelFileCreator.createExcelFile(getShopMonthly(map), getMergeInfo(fileType), sheet, styleMap, ISheetInfo.SHOP.SHOPMONTHLY.headers1, ISheetInfo.SHOP.SHOPMONTHLY.headers2, ISheetInfo.SHOP.SHOPMONTHLY.headers3); } } break; case 2: { //生成周份表 Sheet sheet = workbook.createSheet(ISheetInfo.SHOP.SHOPWEEKLY.headers1[0]); if (Multi) { sheet = biRepExcelFileCreator.createExcelFile(getMultiAllWeeklyData(map), getMMergeInfo(fileType), sheet, styleMap, ISheetInfo.MSHOP.MSHOPWEEKLY.headers1, ISheetInfo.MSHOP.MSHOPWEEKLY.headers2, ISheetInfo.MSHOP.MSHOPWEEKLY.headers3); } else { sheet = biRepExcelFileCreator.createExcelFile(getShopWeeklySales(map), getMergeInfo(fileType), sheet, styleMap, ISheetInfo.SHOP.SHOPWEEKLY.headers1, ISheetInfo.SHOP.SHOPWEEKLY.headers2, ISheetInfo.SHOP.SHOPWEEKLY.headers3); } } break; case 3: {// List<BiReportShopDailySalesReportBean> model = biReportSalesShopDaoExt.selectListByDate(map); //生成日表报表,getData(para) important! dealSaleShopModel(null) Sheet sheet = workbook.createSheet(ISheetInfo.SHOP.SHOPDAILY.headers1[0]); if (Multi) { sheet = biRepExcelFileCreator.createExcelFile((getMultiAllDailyData(map)), getMMergeInfo(fileType), sheet, styleMap, ISheetInfo.MSHOP.MSHOPDAILY.headers1, ISheetInfo.MSHOP.MSHOPDAILY.headers2, ISheetInfo.MSHOP.MSHOPDAILY.headers3); } else { sheet = biRepExcelFileCreator.createExcelFile((dealSaleShopModel(getData(map), map)), getMergeInfo(fileType), sheet, styleMap, ISheetInfo.SHOP.SHOPDAILY.headers1, ISheetInfo.SHOP.SHOPDAILY.headers2, ISheetInfo.SHOP.SHOPDAILY.headers3); } } break; case 4: { List<BiReportProductMonthlySalesBean> model = getProductMonthly(map);//商品月报 Sheet sheet = workbook.createSheet(ISheetInfo.MODEL.MODELMONTHLY.headers1[0]); sheet = biRepExcelFileCreator.createExcelFile(getModelMonthly(map), getMergeInfo(fileType), sheet, styleMap, ISheetInfo.MODEL.MODELMONTHLY.headers1, ISheetInfo.MODEL.MODELMONTHLY.headers2, ISheetInfo.MODEL.MODELMONTHLY.headers3); } break; case 5: { List<BiReportProductWeeklySalesBean> model4 = getProductWeeklySales(map);//商品周报 Sheet sheet = workbook.createSheet(ISheetInfo.MODEL.MODELWEEKLY.headers1[0]); sheet = biRepExcelFileCreator.createExcelFile(getModelWeeklySales(map), getMergeInfo(fileType), sheet, styleMap, ISheetInfo.MODEL.MODELWEEKLY.headers1, ISheetInfo.MODEL.MODELWEEKLY.headers2, ISheetInfo.MODEL.MODELWEEKLY.headers3); } break; case 6: {// List<BiReportProductDailySalesBean> model = biReportSalesProductDaoExt.selectListByDate(map);//商品日报 Sheet sheet = workbook.createSheet(ISheetInfo.MODEL.MODELDAILY.headers1[0]); sheet = biRepExcelFileCreator.createExcelFile(getModelDaily(map), getMergeInfo(fileType), sheet, styleMap, ISheetInfo.MODEL.MODELDAILY.headers1, ISheetInfo.MODEL.MODELDAILY.headers2, ISheetInfo.MODEL.MODELDAILY.headers3); } break; case 7: { List<BiReportProductMonthlySalesBean> model = getProductMonthly(map); Sheet sheet = workbook.createSheet(ISheetInfo.PRODUCT.PRODUCTMONTHLY.headers1[0]); sheet = biRepExcelFileCreator.createExcelFile(model, getMergeInfo(fileType), sheet, styleMap, ISheetInfo.PRODUCT.PRODUCTMONTHLY.headers1, ISheetInfo.PRODUCT.PRODUCTMONTHLY.headers2, ISheetInfo.PRODUCT.PRODUCTMONTHLY.headers3); } break; case 8: { List<BiReportProductWeeklySalesBean> model4 = getProductWeeklySales(map); Sheet sheet = workbook.createSheet(ISheetInfo.PRODUCT.PRODUCTWEEKLY.headers1[0]); sheet = biRepExcelFileCreator.createExcelFile(model4, getMergeInfo(fileType), sheet, styleMap, ISheetInfo.PRODUCT.PRODUCTWEEKLY.headers1, ISheetInfo.PRODUCT.PRODUCTWEEKLY.headers2, ISheetInfo.PRODUCT.PRODUCTWEEKLY.headers3); } break; case 9: {// List<BiReportProductDailySalesBean> model = biReportSalesProductDaoExt.selectListByDate(map); Sheet sheet = workbook.createSheet(ISheetInfo.PRODUCT.PRODUCTDAILY.headers1[0]); sheet = biRepExcelFileCreator.createExcelFile(getProductDaily(map), getMergeInfo(fileType), sheet, styleMap, ISheetInfo.PRODUCT.PRODUCTDAILY.headers1, ISheetInfo.PRODUCT.PRODUCTDAILY.headers2, ISheetInfo.PRODUCT.PRODUCTDAILY.headers3); } break; case 10: { List<BiReportSKUMonthlySalesBean> model = getSkuMonthly(map); Sheet sheet = workbook.createSheet(ISheetInfo.SKU.SKUMONTHLY.headers1[0]); sheet = biRepExcelFileCreator.createExcelFile(model, getMergeInfo(fileType), sheet, styleMap, ISheetInfo.SKU.SKUMONTHLY.headers1, ISheetInfo.SKU.SKUMONTHLY.headers2, ISheetInfo.SKU.SKUMONTHLY.headers3); } break; case 11: { List<BiReportSKUWeeklySalesBean> model = getSkuWeeklySales(map); Sheet sheet = workbook.createSheet(ISheetInfo.SKU.SKUWEEKLY.headers1[0]); sheet = biRepExcelFileCreator.createExcelFile(model, getMergeInfo(fileType), sheet, styleMap, ISheetInfo.SKU.SKUWEEKLY.headers1, ISheetInfo.SKU.SKUWEEKLY.headers2, ISheetInfo.SKU.SKUWEEKLY.headers3); } break; case 12: {// List<BiReportSKUDailySalesBean> model = biReportSalesSKUDaoExt.selectListByDate(map); Sheet sheet = workbook.createSheet(ISheetInfo.SKU.SKUDAILY.headers1[0]); sheet = biRepExcelFileCreator.createExcelFile(getSkuDaily(map), getMergeInfo(fileType), sheet, styleMap, ISheetInfo.SKU.SKUDAILY.headers1, ISheetInfo.SKU.SKUDAILY.headers2, ISheetInfo.SKU.SKUDAILY.headers3); } break; default: { } break; } } else { $info(PARAERROR); } }
由于一次性生成的poi文件过大,会导致程序查询到数据后将数据放到workbook对象时会出现内存溢出错误!
解决方案:限制一次性生成的文件的量,由于生成workbook(poi)对象存储在内存中,要判断excel数据量的同时,及时从内存中将数据输出!
0 0
- POI导出Excel文件
- POI EXCEL 文件导出
- POI 导出excel文件
- POI导出Excel文件
- POI导出Excel文件
- POI导出Excel文件
- Apache POI导出Excel文件
- struts2+poi 导出Excel文件
- poi导出为excel文件
- java poi导出excel文件
- 使用POI导出excel文件
- POI Excel文件的导出
- POI文件excel文件导入导出
- 使用POI导入和导出 Excel文件
- 使用POI导入和导出Excel文件
- struts2+poi实现excel文件的导出
- 使用POI导入和导出Excel文件
- Struts的POI导出Excel文件
- android应用程序如何调用支付宝接口
- 深入理解JVM(十)——类加载器
- 深度学习视觉领域常用数据集汇总
- android中的多线程机制
- 检验手机SD卡是否存在,确定新文件夹的位置
- POI EXCEL 文件导出
- jQuery-树形菜单动画
- Ionic2跨平台项目(一)简单探讨及iOS项目创建
- 学生系统管理
- PHP 7.1 新特性
- Jtest 使用教程之代码标准违例修正与标准规则说明书访问
- Win7+VS2010(32)+PCL-- 安装+配置+测试
- R语言聚类分析
- dubbo