Java操作百万数据量Excel导入导出工具类(程序代码教程)

excel百万数据如何导入导出? 因为你所创建的book,Sheet,row,cell等在写入到Excel之前,都是存放在内存中的(这还没有算Excel的一些样式格式等等),可想而知,内存不溢出就有点不科学了!限制了用户的下载数量每次最多只能有四个人同时下载,并且控制每个用户最大的导出数据最多只能是20w,与此同时他们也是使用的JDBC分批导入,但是并没有手动控制事务。2、其次就是往DB里插入,怎么去插入这20w条数据,当然不能一条一条的循环,应该批量插入这20w条数据,同样也不能使用Mybatis的批量插入语,因为效率也低。 阅读详情

Java操作百万数据量Excel导入导出工具类(程序代码教程):

# 功能实现

1、自定义导入数据格式,支持配置时间、小数点类型(支持单/多sheet)(2种方式:本地文件路径导入(只支持xls、xlsx格式)、MultipartFile 请求方式 )              
2、浏览器(response响应)导出Excel文件、模板文件(支持单/多sheet)           
3、指定路径导出Excel文件(支持单/多sheet)           
4、自定义样式:行、列、某个单元格(字体大小、字体颜色、左右对齐、居中、是否忽略边框。支持单/多sheet)           
5、自定义固定表头(支持单/多sheet)            
6、自定义下拉列表值(支持单/多sheet)           
7、自定义合并单元格、自定义列宽、自定义大标题(支持单/多sheet)
8、导出图片、图片地址和数据一样,只要是能访问的图片都可以导出(有需求、图片适应大小待解决),图片格式:.JPEG|.jpeg|.JPG|.jpg|.png|.gif


# czy-nexus-commons-utils
  推荐使用最新版本:        
          
         <!--
            maven:https://mvnrepository.com/artifact/com.github.andyczy/java-excel-utils
            教程文档:https://github.com/andyczy/czy-nexus-commons-utils/blob/master/README-Andyczy.md
         -->
        <dependency>        
            <groupId>com.github.andyczy</groupId>       
            <artifactId>java-excel-utils</artifactId>       
            <version>最新版本</version>      
        </dependency> 

  [教程说明](https://github.com/andyczy/czy-nexus-commons-utils/blob/master/README-Andyczy.md)   
  [本地输出测试](https://github.com/andyczy/czy-nexus-commons-utils/blob/master/README-Local-Test.md)   
   
  亲自测试:WPS、office 07、08、09、10、11、12、16 能正常打开。其他版本待测试!                                  
  注:POI SXSSFWorkbook 最高限制1048576行,16384列               
 
            
###  方式一:导出使用函数 ExcelUtils.exportForExcelsOptimize() 和  LocalExcelUtils.localNoResponse() 
        //【推荐使用该方式】【建议大数据量下不要过多设置样式】
             
        ExcelUtils excelUtils = ExcelUtils.initialization();
        // 必填项--导出数据(参数请看下面的格式)
        excelUtils.setDataLists(dataLists);   
        // 必填项--sheet名称(如果是多表格导出、sheetName也要是多个值!)
        excelUtils.setSheetName(sheetNameList);
        // 文件名称(可为空,默认是:sheet 第一个名称)
        excelUtils.setFileName(excelName);
        
        // web项目response响应输出流:必须填 【ExcelUtils 对象】
        excelUtils.setResponse(response);
        
        // 输出本地【LocalExcelUtils 对象】
        // excelUtils.setFilePath("F://test.xlsx");

        // 每个表格的大标题(可为空)
        excelUtils.setLabelName(labelName);
        // 自定义:固定表头(可为空)
        excelUtils.setPaneMap(setPaneMap);
        // 自定义:单元格合并(可为空)
        excelUtils.setRegionMap(regionMap);
        
        // 自定义:对每个单元格自定义列宽(可为空)
        excelUtils.setMapColumnWidth(mapColumnWidth);
        // 自定义:某一行样式(可为空)
        excelUtils.setRowStyles(stylesRow);
        // 自定义:某一列样式(可为空)
        excelUtils.setColumnStyles(columnStyles);
        // 自定义:每一个单元格样式(可为空)
        excelUtils.setStyles(styles);
                
        // 自定义:对每个单元格自定义下拉列表(可为空)
        excelUtils.setDropDownMap(dropDownMap);
        
        // 自定义:设置默认单元格列宽(可为空、默认16) 
        excelUtils.setDefaultColumnWidth(8);
                     
        // 自定义:设置默认字体(可为空、默认12号) 
        excelUtils.setFontSize(16);
        
        // 执行导出
        excelUtils.exportForExcelsOptimize();       
 
###  方式三:导出函数 ExcelUtils.exportForExcelsNoStyle()  和  LocalExcelUtils.localNoStyleNoResponse()  
    无样式(行、列、单元格样式)推荐使用这个函数、样式设置过多会影响速度   
        
       
### 导入使用函数: ExcelUtils.importForExcelData(......)
        * 获取多单元数据         
        * 自定义:多单元从第几行开始获取数据【看本文最底下参数说明】            
        * 自定义:多单元根据那些列为空来忽略行数据【看本文最底下参数说明】                 
        * 自定义:数据格式    

  
###  ExcelUtils 对象与 LocalExcelUtils 区别。
    ExcelUtils:     web响应有  response
    LocalExcelUtils:本地输出没 response
    
    
###  Test 测试【新增本地测试】

 
###  方式四:导出函数 ExcelUtils.exportForExcel(......)   过期注解(已经删除)
  


        
### 数据格式
#### 一、导出配置                                             
   1、参数 dataLists
   
       @Override
       public List<List<String[]>> exportData(String deviceNo,String snExt,Integer parentInstId,String startDate, String endDate){
           List<List<String[]>> dataLists = new ArrayList<>();
           List<String[]> oneList = new ArrayList<>();  // 表格一数据
           PageInfo<BillInfo> pagePageInfo = getBillPage(1,10000,null,snExt,deviceNo,parentInstId,startDate,endDate);
           String[] valueString = null;

           String[] headers = {"序号","标题一","标题一","标题二","标题三","标题四","标题五","标题六"};
           String[] headersTwo = {" ","标题一小标题(合并用)","标题一小标题(合并用)"," "," "," "," "};
           oneList.add(headers);
           oneList.add(headersTwo);
            
           for (int i = 0; i < pagePageInfo.getList().size(); i++) {
               valueString = new String[]{(i + 1) + "", pagePageInfo.getList().get(i).getSnExt(),
                       getNeededDateStyle(pagePageInfo.getList().get(i).getPayTime(),"yyyy-MM-dd hh:mm:ss"),
                       pagePageInfo.getList().get(i).getInstName(),pagePageInfo.getList().get(i).getStatisticsPrice()+"",
                       pagePageInfo.getList().get(i).getDeviceNo(),
                       pagePageInfo.getList().get(i).getWarning()==1?"是":"否"};
               oneList.add(valueString);
           }
           
           List<String[]> twoList = new ArrayList<>();  // 表格二数据格式与表一相同
           
           
           listArray.add(oneList);   // 多个表格导出就是多个sheet 
           listArray.add(twoList);   // 多个表格导出就是多个sheet 
           return dataLists;
       }  
           
   2、参数:sheetName(每个sheet名称)、fileName(导出Excel文件名称)、labelName(每个sheet大标题,与sheetName格式一样)
   
       需注意的是:如果是多表格导出、sheetName也要是多个值!
       如上面有两个数据导出: 
       String[] sheetNameList = new String[]{"表格一数据","表格二数据"};
       excelUtils.setSheetName(sheetNameList);
       
   2、自定义列宽:参数 mapColumnWidth
   
       HashMap<Integer, HashMap<Integer, Integer>> mapColumnWidth = new HashMap<>();
       HashMap<Integer, Integer> mapColumn = new HashMap<>();
       //第一列、宽度为 3[3的大小就是两个12号字体刚刚好的列宽](注意:excel从零行开始数)
       mapColumn.put(0, 3);  
       mapColumn.put(1, 20);
       mapColumn.put(2, 15);
       //第一个单元格列宽
       mapColumnWidth.put(1, mapColumn);
       
   3、自定义固定表头:参数 paneMap
   
       HashMap paneMap = new HashMap();
       //第一个表格、第一行开始固定表头
       paneMap.put(1, 1); 
       
   
   4、自定义合并单元格:参数 regionMap

        HashMap regionMap = new HashMap();
        //合并单元格-代表起始行号,终止行号, 起始列号,终止列号进行合并。
        ArrayList<Integer[]> sheet1 = new ArrayList<>();
         
        //代表起始行号,终止行号, 起始列号,终止列号进行合并。(注意:excel从零行开始数)
        sheet1.add(new Integer[]{1, 1, 0, 10});
        sheet1.add(new Integer[]{2, 3, 1, 1});
        //第一个表格设置。
        regionMap.put(1, sheet1);
                                      
      
   5、自定义下拉列表值:参数 dropDownMap
      
       HashMap dropDownMap = new HashMap();
       List<String[]> dropList = new ArrayList<>();
       //必须放第一:设置下拉列表的列(excel从零行开始数)
       String[] sheetDropData = new String[]{"1", "2" };
       
       //下拉的值放在 sheetDropData 后面。
       String[] sex = {"男,女"};                      // 第一列显示的值
       String[] city = {"北京","山东","海南","湖南"};  // 第二列显示的值
       dropList.add(sheetDropData);
       dropList.add(sex);
       dropList.add(city);
       //第一个表格设置。
       dropDownMap.put(1, dropList);
       
       
   6、自定义每个(sheet)表格第几行或者是第几列的样式:参数 rowStyles / columnStyles (默认带边框)       
           
        参数说明:
        HashMap columnStyles = new HashMap();
        List list = new ArrayList();
        
        //1、样式(是否居中?,是否右对齐?,是否左对齐?, 是否加粗?,是否忽略边框? )
        list.add(new Boolean[]{true, false, false, false, true}); 
        
        //2、第几行或者是第几列(注意:excel从零行开始数)       
        list.add(new Integer[]{1, 3});   
        
        //3、颜色(8是黑色、10红色等) 、字体、行高(可不设置)                                       
        list.add(new Integer[]{10,14,null});   
         
        //第一表格                                 
        columnStyles.put(1,list);                                                     
        
   7、自定义每一个单元格样式:参数 styles (默认带边框)       
        
       参数说明:
       HashMap styles = new HashMap();
       List< List<Object[]>> stylesList = new ArrayList<>();
       List<Object[]> stylesObj = new ArrayList<>();
       List<Object[]> stylesObjTwo = new ArrayList<>();
       
       //1、样式一(是否居中?,是否右对齐?,是否左对齐?, 是否加粗?,是否忽略边框? )
       stylesObj.add(new Boolean[]{true, false, false, false, true});    
         
       //1、颜色(8是黑色、10红色等) 、字体、行高(可不设置)(必须放第二)
       stylesObj.add(new Integer[]{10, 12});         
                           
       //1、第五行、第一列(注意:excel从一开始算)
       stylesObj.add(new Integer[]{5, 1});                                  
       stylesObj.add(new Integer[]{6, 1});                                
       
       //样式二
       //样式三                          
       
       stylesList.add(stylesObj);
       //第一个表格所有自定义单元格样式 
       styles.put(1, stylesList);                                             
 

   
   
   
#### 二、导入配置
   1、(第几行开始获取数据)  参数 indexMap
       
       参数说明:多单元从第几行开始获取数据,默认从第二行开始获取(可为空)
       HashMap hashMapIndex = new HashMap();
       hashMapIndex.put(1,3);  //  第一个表格从第三行开始获取
       
  
   2、导入配置:(列为空来忽略行数据)  参数 continueRowMap
       
       参数说明:多单元根据那些列为空来忽略行数据(可为空)
       HashMap mapContinueRow = new HashMap();
       // 第一个表格第1、3列为空就忽略这行数据
       mapContinueRow.put(1,new Integer[]{1, 3});  
       
   
   
   3、数据格式
        导入时间格式(默认:yyyy-MM-dd)
        导入数字保留的小数点(默认:#.###### 六位)
        
        ExcelUtils excelUtils = ExcelUtils.initialization();
        // (可为空、期望保留小数的位数,如(#.####)保留四位。
        excelUtils.setNumeralFormat("#.####");     
                   
        // (可为空、将转换的时间格式) 
        // (poi 只接受无中文的日期格式、如果你想转换别的格式,这个参数要和导入表中日期格式类似,如表格中为:2019年02月14日 12时12分)。
        excelUtils.setDateFormatStr("yyyy年MM月dd日 HH时mm分"); 
        
        //(可为空、期望转换后的日期格式) 
        excelUtils.setExpectDateFormatStr("yyyy-MM-dd HH-mm");  // (可为空、默认的值是:dateFormatStr 参数值) 。
        // 执行导入函数   ExcelUtils.importForExcelData()
   
   
   

# 感谢支持、感谢你们(排名不分先后)
蒙蒙的雨(3元微信)、阿星支付宝(100支付宝)、李凯(5元微信)、blue(5元微信2019-03-28)、鹏飞(50支付宝2019-06-05)、啊哈(3元微信19-06-26)、84644574*(QQ 4元19-07-08)                  
                      
![支持一下](https://github.com/andyczy/czy-nexus-commons-utils/blob/master/sqm.png)                        
                   
### License
java-excel-utils is Open Source software released under the Apache 2.0 license.     

 

Java代码实现百万级数据XLS文件和XLSX文件的读取(已经过测试, 安心使用) Java代码实现百万级数据xls和xlsx文件的读取,并且提供了官方提供的XLS和XLSX转CSV方法的调用方式 阅读详情

相关推荐

java百万级别数据导入导出如何优化?【篇章一】

【代码】java百万级别数据导入导出如何优化?

qq_43345619的博客 3538

Java操作百万数据量Excel导入导出工具类(维护中)

更新日志:(如果有更好的优化方案或者更高级的工具类:欢迎评论或者私信) * 1.response.reset();注释掉reset,否在会出现跨域错误。 * 2.可导出多个单元、poi官方建议大数据量解决方案:SXSSFWorkbook。 * 3.自定义下拉列表:对每个单元格自定义下拉列表。 * 4.数据遍历方式换成数组(效率较高)、可提供模板下载、每个表格的大标题[2018-09-14] ...

用心做每件事 3万+

Java导出数据到excel,数据量百万级别

1.pom支持 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.10-FINAL</vers...

临窗,听雨声 1698

导入:Java实现大批量数据导入导出(100W以上)

阅读文本大概需要3分钟。来源:https://www.cnblogs.com/barrywxx/p/10700221.html最近业务方有一个需求,需要一次导入超过100万数据到系统数据...

天行健,君子以自强不息;地势坤,君子以厚德载物。 9090

Java Web开发中Excel导入导出工具类实战详解

在现代企业级Java应用中,处理Excel文件已成为不可或缺的技术能力。无论是财务系统中的账单导出、人力资源系统的员工信息批量导入,还是电商平台的商品库存同步,都离不开对Excel文档的读写操作。而Apache POI作为Java平台上最成熟、功能最全面的Office文档处理库之一,提供了完整的API支持XLS和XLSX格式的Excel文件操作。本章将深入剖析Apache POI的核心对象模型及其底层机制,重点围绕WorkbookSheetRow和Cell。

weixin_42612405的博客 847

Java实现excel大数据量导入

主要为大家详细介绍了Java实现excel大数据量导入,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

java大数据量的excel导入导出

大数据量导入导出, 亲测可解决百万级excel的导入导出! 基础: 03版(xls)excel文件每个sheet最大长度为 65535 07版(xlsx)excel文件每个sheet最大长度为 104万 07版后, 底层文件为 xml, 可以将 xlsx后缀改为rar 后用解压软件打开查看源文件 导入: 所需jar包: 3个

u013488171的博客 3万+

SAP SD核心流程解析:从销售订单到财务结算的实战指南

本文深入解析SAP SD模块从销售订单到财务结算的核心流程,重点剖析了销售订单中的行项目类别如何作为流程的“总开关”,决定了后续交货、开票及财务集成的走向。文章结合实战案例,详细拆解了正常销售、退货、第三方销售、寄售等典型流程的配置要点与国内化适配方案,并阐述了SD与财务模块集成的关键连接点,为顾问和用户提供了一份全面的实战指南。

weixin_29250403的博客 429

Java操作百万数据量Excel导入导出工具类------暂时引用

更新日志:(如果有更好的优化方案或者更高级的工具类:欢迎评论或者私信) * 1.response.reset();注释掉reset,否在会出现跨域错误。 * 2.可导出多个单元、poi官方建议大数据量解决方案:SXSSFWorkbook。 * 3.自定义下拉列表:对每个单元格自定义下拉列表。 * 4.数据遍历方式换成数组(效率较高)、可提供模板下载、每个表格的大标题[2018-09-14] ...

quliuwuyiz的博客 1288

LaTeX公式转Word竟这么简单?Python三行代码实现学术论文格式无忧

本文介绍如何利用Python的latex2word库,仅需三行代码即可将LaTeX数学公式精准转换为Word原生Office Math对象,解决学术写作中LaTeX与Word格式割裂的难题。该方法支持批量处理、格式保真,并能与Markdown、Jupyter Notebook等工具集成,构建自动化写作流程,实现学术论文格式无忧。

qsc90123456的博客 298

基于STM32和MPU6050的手势控制小车设计与实现

MPU6050传感器:用于检测手势变化,采集加速度和陀螺仪数据。STM32微控制器:处理MPU6050传感器的数据,根据手势变化控制小车的运动。电机驱动模块:接收来自STM32的控制信号,驱动小车的电机,实现小车的前进、后退、左转和右转。小车底盘:作为整个系统的机械部分,提供移动平台。MPU6050是一款集成了3轴加速度计和3轴陀螺仪的传感器,具有高精度、低功耗和小体积等特点。它通过I2C接口与微控制器通信,可以实时采集加速度和角速度数据,广泛应用于运动检测、姿态控制和手势识别等领域。

m0_57781768的博客 2310

JAVA+POI实现大数据量excel表格的导入、导出

实际项目中经常会遇到excel导入、导出操作,数据量过大会导致内存溢出,自己封装了一个导入导出的工具类,包括用户模式、事件驱动模式两种导入导出,数据量较小是可以使用用户模式,数据量比较大使用事件驱动模式,实测事件驱动模式下导入导出百万数据量毫无压力。 下面介绍下事件驱动模式导入导出的用法: 一、事件驱动模式导入 1、定义导入实体类,对应excel表格每一行数据,需要与表格字段顺序一致(使用l...

3491

手把手教你用UC3842搭建12V/5A反激电源(附PSIM仿真文件)

本文详细介绍了基于UC3842的12V/5A反激电源设计与PSIM仿真实践。从UC3842芯片选型、高频变压器计算到PSIM仿真模型搭建,提供完整的开关电源设计流程。特别包含PCB布局要点和实测优化建议,帮助工程师快速掌握反激电源开发技巧。

u6v7w8x的博客 1203

导入导出百万数据java_Poi导入导出百万Excel数据--java编程

前言项目中做报表,导入导出Excel,是常见也是不可或缺的功能,本文讲解导入多Excel的写法,以及导出百万的优化方案图解代码思路 导出多Excel工具类package com.XXX.XXX.utils;import.XXX.ExportExcelBase;import lombok.extern.slf4j.Slf4j;import org.apache.poi.xssf.usermodel....

weixin_36130575的博客 792

CVPR 2026 即插即用 | 注意力篇 | PFG:多尺度大核+像素级频率门控,特征显著增强,精准适配边缘纹理场景

本文提出了一种基于频率引导的轻量级外围门控模块PFG,用于高效时空预测学习。该模块通过多尺度大核分解卷积(1×K + K×1)捕捉外围空间依赖,同时利用固定频率滤波器提取高频线索,动态融合不同尺度的外围特征。核心创新包括:外围聚焦的多尺度空间增强、频率引导的动态融合机制、双阶段归一化协同等。实验表明,PFGNet在多个基准数据集上达到SOTA性能,同时保持较低计算复杂度。该模块可直接嵌入各类视觉模型,适用于需要强化空间-通道协同表达的轻量级任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 484

从 CDS 接口到 ABAP 运行时,深入理解 SAP RAP Custom Entity

CDS Custom Entity 是一种非 SQL、瞬态的 CDS 实体,不依赖 HANA SQL 读取数据,而是通过 ABAP 类实现查询逻辑(如 RFC、OData、BAPI 等)。它在 CDS 层定义数据契约(字段、键、关联、注解),由 @ObjectModel.query.implementedBy 指向实现 IF_RAP_QUERY_PROVIDER~SELECT 的类,真正执行数据获取。适用于无法用 SQL 表达的数据源,如远程系统或 API。其核心是“接口 + 实现”模式,运行时由 RAP

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 172

Excel导入导出百万级数据

Excel导入导出百万数据方案

Jeck_wu的博客 2190

Linux C/C++ or 嵌入式面试之《C/C++笔面试系列》(10) C++ 前置后置增减运算符重载形式与比较

C语言的++、–运算符在此不讨论。 文章目录1、前置后置增减运算符重载的形式2、前置和后置运算符的性能比较 1、前置后置增减运算符重载的形式 自增运算符“++”和自减运算符“–”分别包含两个版本。即运算符前置形式(如 ++x)和运算符后置形式(如 x++),这两者进行的操作是不一样的。因此,当我们在对这两个运算符进行重载时,就必须区分前置和后置形式。C++根据参数的个数来区分前置和后置形式。如果按照通常的方法来重载 ++ 运算符(即作为成员函数重载时不带参数,或者作为非成员函数重载时带有一个参数),那么重载

二进制君 5834

Java采用POI优化实现导出excel百万级数据量

1.目前导出excel的几种格式:Excel 2003、Excel 2007 在POI中使用HSSF对象时,excel 2003最多只允许存储65536条数据,一般用来处理较少的数据量,这时对于百万级别数据,在计算机性能稍低的机器上测试,就很容易导致堆溢出 Excel 2003:在POI中使用HSSF对象时,excel 2003最多只允许存储65536条数据,一般用来处理较少的数据量。这时对于...

S&Y_shhy_QQ_1127833416 3968

vue支付项目-APP支付宝支付功能

如果用户已安装支付宝客户端,商家 App 唤起支付宝完成支付,支付完后跳回到商家 App 内,最后展示支付结果。如果用户没有安装支付宝客户端,商家 App 内会调起支付宝网页支付收银台,用户登录支付宝账号,支付完后展示支付结果。1.点击按钮开通或者续费,会验证是否选择会员商品以及对协议是否查看选中(这里根据项目需要自行验证,可忽略),验证通过打开选择支付方式弹窗页面,选择微信支付或者支付宝支付;4.可取消支付,放弃支付会返回会员页面,页面提示支付取消;1.判断支付方式,如果是2,则是支付宝支付方式。

总结前端开发中遇到的问题,分享前端知识 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java处理百万级Excel数据导入导出,我直接秀了这波操作!

Data// 用户名// 真实姓名// 邮箱// 手机号// 年龄// 性别(1-男,0-女)// 部门// 职位// 薪资// 入职日期// 状态(1-启用,0-禁用)// 备注EasyExcel使用:一行一行读取,内存占用极低批处理思想:每1000条处理一次,平衡性能和内存异步处理:Spring @Async注解,提升用户体验分页查询:避免一次性加载大量数据数据校验:格式、必填项、业务规则校验异常处理:完善的异常捕获和处理机制性能优化。

qq_35666191的博客 1092

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java百万级别数据Excel表导入导出

java中百万级别数据Excel表格导入导出会遇到那些问题呢? 1.把数据库中的数据直接 select * from table 时可能导致内存溢出; 2.把数据一行一行写入到Excel表中会很慢; 3.导入数据时一条一条插入数据效率也会很慢,而且数据库链接可能会不够用; 解决: 1.对数据进行分页查询,比如有八百万的数据需要导出,那就一次导出20w,分20次执行; 2.将查询到的数据分批分块放到Excel表中; 3.批量插入,分批读取excel表格中的内容,存到一个list中,当list中的数

m0_74343375的博客 2213

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

POI Excel导入导出(上)

常见的Excel操作工具有JXL、POI等。JXL只能对Excel进行操作,属于比较老的框架,而且只支持到Excel95-2000版本,现在已经停止更新和维护,这里不做过多介绍。POI是Apache的项目,可以对微软/WPS的Word、Excel、PPT甚至OutLook进行操作。说这句话目的只有一个,就是告诉大家POI不仅仅只能处理Excel,Word、PPT这些办公组件也同样适用。但实际开发中处理Excel的场景几乎占了95%以上,所以我们只介绍POI处理Excel的部分。

smart_an的专栏 1215

Excel工具类——EasyExcel实现百万数据导出

Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;

· 2085
上一篇: 每天定时采集(当前时间到月底)携程机票数据
下一篇: 【rocketMQ初级与进阶】1、rocketMQ介绍和应用场景
AndyChen9988
博客等级 码龄11年 276粉丝 89原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值