`
lzg3267373
  • 浏览: 30373 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

大量数据与Excel交互的解决方案

阅读更多

一. 导入生成 Excel

原始的做法:

将数据加载到内存中,导入 Excel, 此方法的弊端:

1. 大量数据加载到内存中 , 使机器变得缓慢

2. 大量数据在导入 Excel 时形成大量 cell 对象产生 OOM

 

在使用 TOMCAT 的情况下, JVM 最高只能支持到 2G 内存,则会发生内存溢出的情况。此时的内存开销主要是两部分,一部分是大量数据加载到内存,另一部分是写入一个 EXCEL 时形成大量 cell 对象的开销。由于 JVM GC 机制是不能强制回收的 .

 

采用的方案是:将大量要导出的数据放入临时表分批次形成多个 Excel 文件后合并.说明:

1. 大量要导出的数据放入临时表

大量数据有可能是在海量数据表里通过条件查询出来的,这样可以有效避免多次在海量 数据中查询,提高了查询效率

2. 分批次形成多个 Excel

比形成一个 Excel 的多个 sheet 好,因为多个 sheet 形式需要将整个 Excel 加载到内存中,那么 sheet 越多, Excel 越大 . 改多个 SHEET 页为多个 EXCEL 。通过多次生成,可以在后面 EXCEL 生成所需要的内存不      足时,有效回收前面生成 EXCEL 时占用的内存。

3. 将多个 Excel 合并

参考 :http://www.iteye.com/topic/240053.

 

二. Excel 导出入库

1.excel 文件上传至服务器

2. 采用 eventusermodel 方式读取 excel 数据 , 分块读取数据并批量入临时表

3. 利用存储过程或其他纯 sql 语句来验证临时表 (Temp1) 中的数据

4. 将验证失败数据放入存储至校验失败的临时表中 (Temp2)

5. 将临时表 (Temp1) 中的数据插入库表

 

在此感谢 JAVAEYE 上的提供参考资料的各位同行

分享到:
评论
4 楼 guooscar 2010-03-10  
wl95421 写道
如果在Windows平台上,安装MS Excel,然后用Jacob通过OLE调用,应该可以,速度应该是最快的,相当于JNI了。

excel速度很慢滴...你可以试试浏览器里面用js调调
3 楼 wl95421 2010-03-10  
如果在Windows平台上,安装MS Excel,然后用Jacob通过OLE调用,应该可以,速度应该是最快的,相当于JNI了。
2 楼 kimmking 2010-03-10  
更好的方案,自己写biff8文件
1 楼 finallygo 2010-03-10  
能不能说的更详细一些呢?比如eventusermodel 方式指的是什么,能不能给个例子?

相关推荐

    VC读写Excel速度慢问题解决方案的源代码

    在开发过程中,尤其是在使用VC++(Visual C++)进行编程时,我们经常遇到与Excel交互的需求,例如数据导入导出。然而,使用默认的方式读写Excel文件时,可能会遇到性能瓶颈,导致整个程序运行速度变慢。这在处理大量...

    基于Excel与XML交互的物流业数据处理方法.pdf

    总结来说,基于Excel与XML交互的物流业数据处理方法是一种结合了两种技术优势的解决方案,它不仅提高了物流业务的效率,也保证了数据处理的灵活性和准确性。通过这种方式,物流企业在处理大量数据时能够减少手动输入...

    ASP.NET与EXCEL交互详解及技巧

    二是使用第三方库,如EPPlus,它提供了更高效且无需安装Excel的解决方案。 1. 使用Excel对象模型(COM互操作):这是早期常用的方法,通过创建Excel Application对象,打开工作簿,访问工作表和单元格来读写数据。...

    MATLAB与Excel文件的数据交互.doc

    Exlink宏则是一种基于MATLAB和Excel之间的动态链接库(DLL)的解决方案,它允许用户在MATLAB中直接执行Excel宏命令,从而实现更灵活的数据交互。 #### 三、函数方式详解 ##### 3.1 获取文件信息——xlsfinfo函数 **...

    关于表单的导出EXCEL设计,有时需要选择性的导出表单上的某些数据的解决方案

    本篇将深入探讨如何实现选择性地导出表单上的特定数据到Excel的解决方案。 首先,我们需要理解表单的基本结构。表单(Form)是HTML中的一个重要元素,用于收集用户输入的信息。它由各种表单控件组成,如文本输入框...

    C#操作EXCEL EXCEL类库 Excel模板处理 将DataTable数据写入Excel文件 C#数据写入EXCEL

    然而,这种方式需要Excel安装在运行程序的机器上,且性能较低,不适合大量数据处理。下面是一个简单的示例,演示如何将DataTable写入Excel: ```csharp using Microsoft.Office.Interop.Excel; // 假设已有...

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

    对于百万级的数据,SQL Server能提供稳定且高性能的解决方案。它可以快速执行复杂的查询,并通过索引优化进一步提升性能。 在Excel与SQL Server之间进行数据导入导出有多种方法: 1. **Excel数据连接**:利用Excel...

    C# Excel大量数据快速导入数据库源码

    总的来说,这个C#源码提供了从Excel到数据库的数据导入解决方案,对于处理大量数据的场景,其效率远高于逐条插入的方式,具有很高的实用价值。开发者可以根据自己的需求调整和扩展这个源码,以满足特定的业务场景。

    vb批量将excel数据导入access以及批量将access数据库中的数据导入excel源代码

    在VB(Visual Basic)编程环境中,常常需要处理数据导入导出的问题,特别是在处理大量数据时,Excel和Access数据库之间的交互显得尤为重要。标题提到的“vb批量将excel数据导入access以及批量将access数据库中的数据...

    C#语言 EXCEL和SQL数据交互集锦

    3. 使用NPOI库:NPOI是针对.NET平台的Java POI库的移植,支持.xls和.xlsx格式,适用于大量数据处理。 二、SQL数据的访问 1. ADO.NET:微软提供的标准数据库访问技术,包括SqlConnection、SqlCommand、...

    MSSQL excel数据导入

    在本项目中,ImportExcel.sln是解决方案文件,它包含了整个项目的配置和引用。而ImportExcel可能是项目主程序的可执行文件,它提供了一个图形用户界面(GUI),用户可以通过这个界面选择Excel文件,设置数据库连接...

    Excel与数据库数据交换类

    《Excel与数据库数据交换类》是针对这个需求提供的一种编程解决方案,它允许开发者通过编写代码来便捷地实现Excel与数据库之间的数据导入导出。 首先,我们要理解这个类的基本工作原理。数据交换通常涉及到读取...

    VB读取串口数据记录在excel,access的软件

    总之,这个VB软件提供了串口数据采集、存储和可视化的一站式解决方案,对于需要处理串口数据的用户来说,是一个非常实用的工具。其核心技术包括串口通信、数据库操作和图形化显示,这些是IT行业中常见的技能点,也是...

    PHP导出数据到excel

    当我们需要从数据库中导出大量数据并以用户友好的格式提供时,Excel是一种理想的选择。本文将深入探讨如何使用PHP将数据从MySQL数据库导出到Excel文件。 首先,要实现这个功能,你需要了解PHP的基本语法以及如何...

    我的boss的excel导出解决方案20170316

    - **性能优化**:对于大量数据的处理,可以考虑分批次上传或者采用异步处理机制,避免长时间阻塞用户界面。 - **异常处理**:添加异常处理逻辑,确保程序在遇到问题时能够妥善处理并给出反馈。 综上所述,本方案...

    处理大数据量excel

    这篇博文“处理大数据量excel”可能提供了针对这一问题的解决方案。博主分享了在处理大量数据时,如何利用编程工具和特定库来提升效率和性能。 首先,我们关注到标签中的“源码”和“工具”,这暗示了博主可能介绍...

    c# 存入数据到excel以及读取excel数据

    另一种无依赖的解决方案是使用第三方库,如EPPlus,它提供了一个更轻量级的API来处理Excel文件(.xlsx格式)。 1. **使用Microsoft.Office.Interop.Excel** 要使用此方法,首先需要添加对`Microsoft.Office....

    HW-TCP终端数据采集EXCEL存储程序LABWINDOWS

    【描述】中提到的"使用labwindows开发的数据采集程序,完全自动存储到EXCEL文档",意味着开发人员利用LabWindows/CVI的强大功能,创建了一个自动化程度高的解决方案。LabWindows/CVI是美国国家仪器公司(NI)提供的...

    Microsoft Office SharePoint Server 2007管理与应用系列之九:利用Excel Service创建商业智能解决方案

    7. Excel Services与Business Connectivity Services(BCS,之前称为Business Data Catalog,BDC)的集成,使得直接从SharePoint访问企业系统如ERP和CRM成为可能,进一步增强了BI解决方案的功能。 8. PowerPivot...

    java实现Excel数据导入到数据库

    总之,Java结合Apache POI和JDBC提供了一套完整的解决方案,用于在Excel和MySQL数据库之间进行数据迁移。通过熟练掌握这些工具和技术,开发者能够高效地完成数据导入导出任务,提升工作效率。在实际项目中,还可以...

Global site tag (gtag.js) - Google Analytics