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

通过流的方式写入excel文件

 
阅读更多

我们在导入excel时候,通常会大批量数据导入,但是容易发生Exception in thread "main" java.lang.OutOfMemoryError: Java heap space的内存溢出.

通常写法大致如下:

//定义sheet以及workbook对象部分略

FileOutputStream fos = new FileOutputStream("D://test//test0215.xlsx");
for (int i = 0; i < 100000; i++) {
sheet.createRow(i).createCell(0).setCellValue(1);
}

可以修改此导出方式,仅仅通过流的方式写入文件,可以避免创建大批量的对象时内存溢出.代码如下可以作为参考:

public static boolean createExcelFileByStream(String path, List list) { 
        try { 
         //定义表头
         String userxlsinfo = "序号\t用户ID\t姓名\t手机\t留言信息"; 
            File file = new File("c:\\streamExcel.xls"); 
            if (file.isFile()) { 
                file.mkdir(); 
            } 
            FileOutputStream out = new FileOutputStream(file); 
            OutputStreamWriter osw = new OutputStreamWriter(out, "GB2312"); 
            BufferedWriter bw = new BufferedWriter(osw); 
            // 创建表头  
            String sheader = userxlsinfo; 
            sheader += "\r\n"; 
            bw.write(sheader); 
            if (list != null) { 
             // List list 此处可以遍历list对象
                for (int i = 0; i < 5; i++) { 
                    StringBuffer mess = new StringBuffer(); 
                    // 用户信息  
                    mess.append((i + 1) + "\t"); 
                    mess.append((i + 1) + "\t"); 
                    mess.append((i + 1) + "\t"); 
                    mess.append((i + 1) + "\t"); 
                    mess.append((i + 1) + "\t"); 
                   
                    mess.append("\r\n");     
                    System.out.println(i); 
                    bw.write(mess.toString()); 
                } 
            } 
            bw.close(); 
            osw.close(); 
            out.close(); 
            return true; 
        } catch (FileNotFoundException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        }
        return false; 
    } 

 

注意:表头部分和数据部分的间隔一定要用'\t ' 如果改用','号则导出文件用excel打开展示会有问题.

 

分享到:
评论
2 楼 pacer123 2012-05-04  
如果数据流不大,就不需要通过流的方式去写excel.
1 楼 蓝色0度 2012-05-02  
你好,请问这种形式可以支持多sheet页的写入吗??
盼回~
谢谢:)

相关推荐

    C++ Excel文件写入

    本文将详细介绍如何使用C++通过fstream文件流来实现Excel文件的写入。 首先,C++标准库中的fstream是处理输入/输出流的核心组件,它可以用于与各种类型的文件进行交互,包括文本文件和二进制文件。对于Excel文件,...

    C#通过流写入数据到文件的方法

    本篇将深入探讨如何使用C#通过流来写入数据到文件,以及涉及到的字节流读写文件的技巧。 首先,我们来看一个简单的例子,这个例子展示了如何使用FileStream和StreamWriter类来写入文本数据到文件。以下代码创建了一...

    Android Excel文件写入和读取

    2. **写入Excel文件**: - 创建工作簿:使用`XSSFWorkbook`类创建一个新的Excel工作簿对象。 - 创建工作表:在工作簿中创建新的工作表,可以设置工作表的名称。 - 创建行和单元格:在工作表中添加行,并在行中...

    java 创建EXCEL文件,并向EXCEL中写入数据

    本示例将介绍如何使用Java创建Excel文件并写入数据,主要涉及的库是`jxl`,这是一个用于读写Excel文件的开源Java库。 首先,我们需要引入`jxl`库。`jxl.jar`包含了一系列的类和接口,用于处理Excel文件的各种操作。...

    Jxl和poi读取写入excel

    写入Excel文件的流程类似,只是需要创建一个新的Workbook对象,然后使用`Sheet.createRow(int rowIndex)`创建行,`Row.createCell(int cellIndex)`创建单元格,最后使用`Workbook.write(OutputStream)`方法将内容...

    读写Excel,  写入excel指定位置

    本篇文章将详细讲解如何在编程环境中读取和写入Excel文件,特别是如何写入到Excel的指定位置。我们将探讨相关的编程技术和工具,以帮助你更好地实现这一功能。 首先,我们需要了解的是,读写Excel文件通常涉及到...

    读取 写入 Excel文件的实例

    在IT行业中,处理数据是日常任务之一,而Excel文件作为数据存储和分析的...通过这个实例,开发者不仅能学会如何读取和写入Excel,还能了解到如何处理不同版本的Excel文件,以及在遇到错误时如何进行有效的异常处理。

    java写入excel图片操作

    在Java编程中,将图片写入Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据可视化的情景下。这里,我们将详细探讨如何实现这个功能,主要依赖于`Apache POI`库来操作Excel,并结合`JFreeChart`库来创建...

    NPOI 开发包 读取Excel 写入Excel

    9. **写入Excel文件**: 创建新的Excel文件或修改已有的,你可以通过创建工作簿、工作表,添加行和单元格,设置值和样式,然后保存到磁盘。 10. **数据导入导出**: 在企业级应用中,NPOI常用于从数据库或其他数据源...

    java 生成写入excel文件.docx

    【Java生成写入Excel文件】知识点详解 在Java编程中,生成并写入Excel文件是一项常见的任务,尤其在数据导出、报表生成等场景中。本篇将详细讲解如何使用Apache POI库来实现这个功能,该库是Java中处理Microsoft ...

    C#利用Response流将数据库数据导出成Excel

    通过Response流,我们可以将数据库数据导出到Excel文件中。 导出Excel文件 在上面的代码中,我们使用了Response流将数据库数据导出到Excel文件中。该代码主要实现了以下几个步骤: 1. 首先,我们设置Response流的...

    NPOI 读取 写入 EXCEL 案例

    3. **写入Excel文件** - **创建新的工作簿**:使用`new HSSFWorkbook()`或`new XSSFWorkbook()`创建一个新的工作簿实例。 - **添加工作表**:调用`workbook.CreateSheet(name)`方法为工作簿添加新的工作表。 - **...

    Java处理Excel文件-excel文件的创建,删除,写入,读取.pdf

    3. **创建Excel文件**:虽然没有直接提供创建新Excel文件的方法,但可以推测,通过实例化`HSSFWorkbook`并使用`FileOutputStream`写入文件即可创建新的Excel文件。 4. **删除Excel文件**:由于没有内建的删除方法,...

    php读取excel及写入excel (强烈推荐)支持高版本php

    通过以上介绍,你应该能使用PhpSpreadsheet库在高版本PHP中流畅地读取和写入Excel文件。这个库不仅功能强大,而且易于使用,是处理Excel文件的得力助手。记得在实际项目中根据需要调整代码,以适应具体的需求。

    用Python将数据写入已存在Excel

    通过组合使用这些模块,我们可以轻松地将数据写入已存在的 Excel 文件。 在实际应用中,将数据写入已存在的 Excel 文件可以有多种应用场景。例如,在数据分析过程中,我们可以使用 Python 将数据写入已存在的 Excel...

    asp.net 将DataGrid数据写入Excel文件.rar

    这里主要涉及到两个步骤:一是获取DataGrid中的数据,二是创建Excel文件并写入这些数据。 1. **获取DataGrid数据**:DataGrid的数据通常是从数据源(如SQL Server数据库、XML文件或数组)绑定而来的。在导出前,...

    Excel合并读写.rar_Excel写入_excel_excel文件读写_somethingwi1_读写excel

    Excel文件的读取和写入是常见的操作,特别是在需要处理大量数据时。本教程将详细讲解如何使用编程方式来读取多个Excel工作表(sheet)并将其合并到一个新的单一工作表中。 首先,我们需要一个库来帮助我们进行读写...

    NPOI导出Excel文件(内存流操作下载)

    利用NPOI导出Excel文件,写入到内存流中,输出文件下载

    java导出excel(写入到excel后再下载)示例

    本示例资源提供了一个RAR压缩包,包含了实现这一功能的源代码,主要讲解了两个核心部分:一是如何将数据写入Excel文件并保存在本地,二是如何在Web环境中将数据库中的数据导出为Excel并允许用户下载。 首先,我们要...

    导入poi jar包实现使用Beanshell读写Excel文件

    总之,通过集成Apache POI和BeanShell,JMeter可以轻松地处理Excel文件,实现数据读取和写入,这对于构建复杂和灵活的测试计划是非常有用的。不过,使用时要考虑性能和资源消耗,选择最适合的解决方案。

Global site tag (gtag.js) - Google Analytics