`
pacer123
  • 浏览: 90797 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

大批量数据导出csv文件

阅读更多

     web系统中常见的对数据进行导出备份功能,通常我们按照要求都是导出excel文件。但是当数据量比较大时,数万条就可能比较慢甚至出现内存溢出。如果用户不强求excel导出的模板样式,字体等。则可以通过导出cvs文件来满足大批量数据导出。可以导出cvs文件后通过excel打开。

    网上下载了opencsv.jar包,通过提供的jar包进行cvs的文件导出,简单的代码如下

      String[] title =new String[]{"name,sex,age"};
        String[][] data = new String[][]{title, {"aa", "F", "22"}, {"bb", "M", "25"}, {"cc", "F", "19"}};

         File tempFile = new File("c:/cc.csv");        
         CSVWriter writer = new CSVWriter(new FileWriter(tempFile));
     

        for (int i = 0; i < data.length; i++) {
             writer.writeNext(data[i]);
         }
         writer.close();

    此种方法出现一个问题,就是CSVWriter对象的writeNext方法只能以数组作为参数。这样就会出现一个问题,当数据量很大的时候则需要开发人员封装相应的数据(字符串数组)。通过测试,很容易出现了内存溢出的现象。不能满足要求,此时对上述代码进行了改进,采用BufferWriter对象来实现上述功能,我们可以按照行数据进行封装,字段间以“,”逗号间隔,每行数据结束后以“\n”换行结束,可以将大数据量的数据进行封装成StringBuffer。

调用BufferWriter对象的write(finalString.toString()); 方法即可。这样避免了内存溢出,测试后到处速度有了很大的提升。   

         注意:当导出的数据中存在隐藏回车时,会出现比较诡异的现象(csv文件用editplus打开的时候假如是20行,但通过excel打开可能会出现20多行,由于数据中某字段数据存在隐藏回车,此时需要在行数据封装时给数据两边加双引号("\"")。可以解决上面的怪异现象.当存在科学计数现象或者日期字段数据被截取时,给该数据前加("\t").可避免上述现象。

  

分享到:
评论

相关推荐

    java实现csv导出千万级数据实例

    本实例聚焦于“java实现csv导出千万级数据实例”,旨在提供一个高效、稳定的解决方案,避免因数据量过大而导致的性能问题,如Java中的栈溢出(Stack Overflow)。CSV(Comma Separated Values)格式因其简单、通用性...

    CSV大数据分批并压缩导出

    "CSV大数据分批并压缩导出"这个话题聚焦于如何高效、安全地处理大量数据,避免内存溢出的问题。以下是对这个主题的详细解释: CSV(Comma Separated Values)是一种广泛使用的数据格式,它以纯文本形式存储表格数据...

    java解决大批量数据导出Excel产生内存溢出的方案

    在Java开发中,当面临大批量数据导出到Excel文件时,可能会遇到内存溢出的问题。这是因为Excel文件格式本身的设计,以及Java默认处理大数据的方式,可能导致内存占用过高,尤其是在一次性加载大量数据到内存中进行...

    CSV导出类库(Easy CSV Export)源码

    3. **导出到HttpResponse**:在Web开发中,可以直接将CSV数据流式传输到HTTP响应,让用户能够在浏览器中直接下载CSV文件,而无需在服务器端先生成临时文件。 类库还包含测试代码,这对于开发者来说是非常宝贵的资源...

    plsql导出数据到excel的三种方法

    1. **导出CSV**:使用PL/SQL Developer将数据导出为CSV格式,这种格式支持更多的数据量,但可能遇到中文字符乱码的问题。 2. **解决乱码问题**: - **方法1**:在Excel中打开CSV文件时,选择正确的编码格式(如...

    导出大量数据到excel

    在IT行业中,将大量数据...总结,导出大量数据到Excel或CSV涉及数据量的处理、格式的选择、压缩技术的应用以及性能和安全的考虑。理解并掌握这些知识点,将有助于我们在实际工作中更高效、安全地处理大数据导出任务。

    java多线程导出excel(千万级别)优化

    每条线程负责写入一个部分的数据到CSV文件,CSV是一种轻量级的文本格式,对内存的需求远低于Excel的XLSX格式。通过这种方式,我们可以避免一次性加载全部数据到内存,从而防止内存溢出。 以下是一个简单的多线程...

    从DW中快速导出大批量数据到EXCEL

    标题“从DW中快速导出大批量数据到EXCEL”主要涉及的是数据处理和转换的知识,特别是关于在数据库管理工具(DW,可能是Dreamweaver或Data Warehouse)与电子表格软件Excel之间的数据交互。这一过程通常涉及到以下几...

    easyExcel实现大数据导出

    4. **使用`EasyExcel.write()`方法导出数据**:提供文件输出流、实体类的Class对象以及可选的写处理器,`easyExcel`会自动完成数据的写入。 ```java OutputStream out = new FileOutputStream("output.xlsx"); ...

    在excel的一个sheet中导出大批量数据>20万

    标题中的“在excel的一个sheet中导出大批量数据&gt;20万”指的是处理Excel电子表格时,涉及到大量数据(超过20万个单元格)的导出操作。在Excel中,通常20万条数据可能超过了单个工作表的推荐限制,这可能会导致性能...

    Excel百万级别数据的导入和导出

    在处理Excel数据时,尤其是涉及百万级别的数据量,效率和性能是至关重要的。"Excel百万级别数据的导入和导出"这一主题主要关注如何高效、有效地管理大量数据在Excel中的输入与输出。以下将详细讨论相关知识点: 1. ...

    ORACLE数据导入导出-操作手册.docx

    ##### 2.2 大批量数据导出 - **推荐方案**:采用临时表结合Excel宏的方式进行导出。具体步骤如下: 1. 创建一个Excel文件。 2. 选择需要导出的表,并确保数据量不超过单个Sheet的最大限制(约100万行)。 3. 使用...

    将大批量的txt文件转换成xls文件的方法.pdf

    以下是一种将大批量txt文件转换为xls文件的方法,尤其适用于超过10万条记录的数据。 首先,txt文件通常是以纯文本形式存储数据的,其中的数据项可能由特定的分隔符隔开。在本例中,我们假设每个数据项由逗号分隔。...

    将大批量的txt文件转换成xls文件的方法 (2).pdf

    当面临大量文本数据时,例如从系统中导出的txt文件,有时我们需要将这些数据转换为更便于管理和分析的格式,比如Excel(xls)文件。这个过程可以手动操作,但当数据量达到十万条以上时,自动化转换就显得尤为重要。...

    java做大批量上传和下载

    6. **CSV.java**:这可能是一个处理CSV文件的类,CSV(Comma Separated Values)是一种简单且广泛使用的文件格式,适合于大批量数据的交换。这个类可能包含了读取和写入CSV文件的方法,比如使用OpenCSV或Apache ...

    大批量数据自动移植方案的设计与开发——在不同版本、不同编码格式的Oracle数据库之间.pdf

    在目前的业界实践中,通常采用的Oracle数据库间大批量数据移植步骤包括:首先通过客户端工具将数据导出为XLS、CSV或TXT等文本格式,然后利用SQL LOADER或其他客户端工具将这些文件导入目标数据库。然而,这种操作...

    百万级数据在Excel和Sql数据库之间相互导入、导出

    例如,BULK INSERT命令适用于大批量导入,而SELECT INTO语句可用于创建新表并填充数据。 4. **Power Query/Microsoft Query**:Power Query(在Excel 2016及以后版本中)或Microsoft Query(在较早版本中)允许用户...

    C# Excel导入 Excel导出

    注意,这种方式不适合大批量导出,因为性能较低。 2. NPOI库:通过NPOI,我们可以创建工作簿,添加工作表,设置单元格值,应用样式,最后将工作簿写入文件。这种方式更适合大量数据的导出,因为它更快速且不依赖...

    数据库数据的导入导出和数据库备份和恢复.pdf

    - 大容量日志恢复模式:适用于大容量操作,如大批量数据插入。 3. 数据库备份策略: - 定期备份:按一定时间间隔(比如每天、每周)进行备份。 - 日志备份:针对事务日志的备份,可以频繁进行以减少数据丢失。 ...

    oracle数据导出工具sqluldr2 4.0.1版

    该文件夹内容如下: sqluldr2.exe sqluldr264.exe ...oracle数据导出工具sqluldr2可以将数据以csv、txt等格式导出,适用于大批量数据的导出,导出速度非常快。导出后可以使用oracle loader工具将数据导入。

Global site tag (gtag.js) - Google Analytics