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

新疆建设厅网站招标公告最新黑帽seo教程

新疆建设厅网站招标公告,最新黑帽seo教程,软件网,晋安网站建设优化前:优化大量数据导出到Excel的内存消耗_大文件异步导出 内存占用高-CSDN博客 写Excel文件报错:Invalid row number (1048576) outside allowable range (0..1048575) 写入Excel时遇到IllegalArgumentException,原因是超出允许的最大行数…

优化前:优化大量数据导出到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, Map<String, String> header, List<Map<String, 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);Map<String, CellStyle> cellStyles = initStyles(wb); // 优化:样式创建移到循环外部while (!datas.isEmpty()) {String currentSheetName = sheetName + "_" + sheetIndex;Sheet sheet = wb.createSheet(currentSheetName);int rowNum = 0;Row row = sheet.createRow(rowNum);
//            Map<String, CellStyle> cellStyles = initStyles(wb);int cellNum = 0;// 写入表头for (Map.Entry<String, 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++) {Map<String, Object> map = datas.remove(0); // 从列表头部移除已处理的数据rowNum++;row = sheet.createRow(rowNum);cellNum = 0;for (Map.Entry<String, 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.hyszgw.com/news/28075/

相关文章:

  • 淘宝作图在哪个网站上做图广州今日头条新闻
  • 个人设计师为什么做网站seo分析工具有哪些
  • php网站开发门槛高吗百度高级搜索网址
  • 产品单页网站东莞seo报价
  • 建设网站最简单的软件是地推团队去哪里找
  • 网站怎么做组织图优化关键词的公司
  • 网络营销试卷爱站网站长seo综合查询工具
  • 杭州 定制网站搜索引擎的工作原理是什么?
  • 郑州网站建设招商今日重大国际新闻军事
  • 那些公司做网站好宁波seo怎么推广
  • 网站建设需求分析范例竞价推广托管公司价格
  • 汽车专业科技网站建设优化大师电脑版官方免费下载
  • 网站可以做系统吗西安自助建站
  • 哇塞fm网站维护保健品的营销及推广方案
  • 学校网站制作方案新品上市怎么做宣传推广
  • 报纸门户网站建设方案百度关键词分析
  • 龙华做网站 熊掌号上海专业的网络推广
  • 手机商城系统制作seo是怎么优化推广的
  • mui做的h5网站案例整站优化的公司
  • wordpress网页怎么上传到服务器错误公司seo营销
  • 商务网站开发代码百度做推广一般要多少钱
  • 从化手机网站建设郑州网站制作推广公司
  • 济南企业建站品牌百度地图打车客服人工电话
  • 做b2b b2c型的混合网站2021近期时事新闻热点事件简短
  • 台州做网站哪家好360手机助手
  • 广州智迅网络做网站百度下载链接
  • 网站可分析seo网络推广知识
  • 营销型网站制作培训sem推广是什么
  • 滑县网站建设价格bt最佳磁力搜索引擎
  • 做网站和微信公众号如何招生中文搜索引擎排行榜