当前位置: 首页 > news >正文

荣誉章标志做网站dw做网站导航

荣誉章标志做网站,dw做网站导航,网页设计主题内容,网站建设一定要备案吗优化前#xff1a;优化大量数据导出到Excel的内存消耗_大文件异步导出 内存占用高-CSDN博客 写Excel文件报错#xff1a;Invalid row number (1048576) outside allowable range (0..1048575) 写入Excel时遇到IllegalArgumentException#xff0c;原因是超出允许的最大行数…优化前优化大量数据导出到Excel的内存消耗_大文件异步导出 内存占用高-CSDN博客 写Excel文件报错Invalid row number (1048576) outside allowable range (0..1048575) 写入Excel时遇到IllegalArgumentException原因是超出允许的最大行数。文章提供了解决方案即使用多个sheet并将数据分批写入以避免此问题。 数据导出优化如果数据超出Excel单表上限Excel单表最多可以存储1048576条数据1024的平方2的20次方如果数据超出Excel单表上限则进行分表。 public void writeExcel(OutputStream os, String sheetName, MapString, String header, ListMapString, Object datas) {logger.info(导入数据到excel 开始);long startTime System.currentTimeMillis(); // 记录开始时间int rowAccessWindowSize 100; // 设置适当的行访问窗口大小SXSSFWorkbook wb new SXSSFWorkbook(rowAccessWindowSize);wb.setCompressTempFiles(true); // 启用临时文件压缩以提高性能int sheetIndex 0; // 新增变量用于追踪当前的sheet索引int maxRowsPerSheet 1048576; // 单个sheet的最大行数int totalRecords ObjectKit.isNotEmpty(datas) ? datas.size() : 0; // 总共导出记录数logger.info(即将导出记录总数: totalRecords);MapString, CellStyle cellStyles initStyles(wb); // 优化样式创建移到循环外部while (!datas.isEmpty()) {String currentSheetName sheetName _ sheetIndex;Sheet sheet wb.createSheet(currentSheetName);int rowNum 0;Row row sheet.createRow(rowNum); // MapString, CellStyle cellStyles initStyles(wb);int cellNum 0;// 写入表头for (Map.EntryString, String entry : header.entrySet()) {String fieldDesc entry.getValue();Cell cell row.createCell(cellNum);cell.setCellValue(fieldDesc);logger.info(导入数据到excel 表头 entry.getKey());cellNum;}// 计算本次循环需要处理的数据量int recordsToProcess Math.min(maxRowsPerSheet - 1, datas.size()); // 减去1是因为第一行是表头for (int i 0; i recordsToProcess; i) {MapString, Object map datas.remove(0); // 从列表头部移除已处理的数据rowNum;row sheet.createRow(rowNum);cellNum 0;for (Map.EntryString, String entry : header.entrySet()) {String fieldName entry.getKey();Object data map.get(fieldName.toUpperCase());String dataString null data ? : data.toString();if (data instanceof BigDecimal) {Cell cell row.createCell(cellNum);cell.setCellValue(((BigDecimal) data).toPlainString());cell.setCellStyle(cellStyles.get(Number));} else {if (data instanceof Date || data instanceof Timestamp) {if (data.toString().contains(.)) {dataString null data ? : data.toString().substring(0, data.toString().indexOf(.));} else {dataString null data ? : data.toString();}}row.createCell(cellNum).setCellValue(null data ? : dataString);}cellNum;}// 当前已导出记录数及进度if(rowNum % 10000 0){logger.info(当前sheet已导出记录数: rowNum , 进度: ((float) rowNum / recordsToProcess) * 100 %);}}sheetIndex; // 切换到下一个sheet}logger.info(导入数据到excel 结束);long endTime System.currentTimeMillis(); // 记录结束时间long elapsedTime endTime - startTime; // 计算耗时时间logger.info(总共导出记录数: totalRecords);long elapsedTimeInSeconds elapsedTime / 1000; // 将毫秒转换为秒logger.info(耗时时间: elapsedTimeInSeconds 秒 );try {wb.write(os);} catch (IOException e) {throw new ImpException(ImpError.APP_ERR_20_04_10, e);} finally {try {if (null ! wb) {wb.close();}} catch (IOException e) {logger.error(e.getMessage(), e);}}} 这一优化措施确保了当数据量超过Excel单表上限时数据能够被有效地分散到多个工作表中从而支持更大规模的数据导出。 目前测试了导出三百万数据正常则进行分表。
http://www.w-s-a.com/news/232284/

相关文章:

  • 查看公司信息的网站思特奇是外包公司吗
  • 制作企业网站的目的啥都能看的浏览器
  • 做网站可以用哪些语言如何进行网站运营与规划
  • 做效果图网站有哪些电子商城网站制作数据库
  • 小刘网站建设wordpress调用php文件上传
  • 建设银行对账网站网络营销广告案例
  • 做网站开票是多少个点的票wordpress扫码提交数据库
  • 织梦网站改版需要怎么做企业网站备案管理系统
  • 大规模网站开发语言宁夏建设职业技术学院网站
  • 寻花问柳专注做一家男人爱的网站北京展台设计制作
  • 中卫网站设计做自己的卡盟网站
  • 广州网站推广自助做网站人家直接百度能搜到的
  • 电子商务网站建设目标及利益分析安徽建设厅网站施
  • 制作网站策划书网站建设公司的性质
  • 哪个网站可以做免费宣传简单的网页设计网站
  • 福州专业网站制作公司金湖建设局网站
  • 好的移动端网站模板下载兰州线上广告推广
  • 宁波高端建站深圳品牌营销策划机构
  • 权威网站优化价格建设厅科技中心网站首页
  • 保定模板建站软件腾讯云做淘客网站
  • 单位建设一个网站的费用正规刷手机单做任务网站
  • 北京定制网站价格开网店怎么卖到外国
  • 做网站 后端是谁来做的工程建设指挥部网站
  • wordpress建站 云打印昆明 网站设计
  • 太原网站建设设计网站建设策划书(建设前的市场分析)
  • 哪里有制作网站电商新手入门知识
  • 制作网站的后台文昌网站建设 myvodo
  • 网站 购买移动网站制作
  • 南京网站网站建设学校英山做网站多少钱
  • 珠海网站建设网如何注册公司公众号