精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-03
你好,你的问题我曾经遇到过。
那个时候也在寻求好的解决办法,因为数据过多导致内存不足,添加硬件明显是解决不了问题。 目前有2个解决的办法: 1.把execl转换成CSV格式,在程序里转换,这个很好解决。这个格式导入大量数据的时候不至于一下子崩溃。 2.批量导入。读入数据后,每次导入5000行 或者1千行。只有在导入数据库的时候才会造成内存的不足。 效验应该没有关系。 可以试试批量导入,这是比较可行的方法。其他目前没有 具体的可行性。JXL也可以 比poi要稳定些 |
|
返回顶楼 | |
发表时间:2009-08-04
ican 写道 1、把excel文件上传到服务器,提示用户上传成功;
2、启动一个线程,把数据导入到临时表,返回导入成功,删除上传excel文件;如果导入失败,提示用户导入失败,删除上传excel文件; 3、利用存储过程或其他纯sql语句来验证临时表中的数据,验证有错,清空临时表中数据,返回错误信息。 呵呵 以前做移动的项目的时候也遇到过一样的情况,也是采用这样的方案,效率还可以。 |
|
返回顶楼 | |
发表时间:2009-08-05
试试ODBC
|
|
返回顶楼 | |
发表时间:2009-08-05
把excel 程序处理成csv文件,在做批量导入处理,这样比excel效率要高的多,验证可以用其他方式处理 比如:利用存储过程或其他纯sql语句来验证临时表中的数据,验证有错,清空临时表中数据,返回错误信息。就可以
|
|
返回顶楼 | |
发表时间:2009-08-05
看来大家在这方面经验还不少啊
看了大家的回复,我准备按照以下几步来改进: 1。用户选择完excel文件提交后,程序将各个文件保存到server,返回提示:文件已经接收,正在等待处理。。。请返回列表页面查看处理状态。 2。文件保存到server后立刻触发一线程处理这些文件。 2.1。改进poi读取excel的方式,采用更加高效的方法。 2.2。采用正则表达式进行合法性校验,失败的批量入失败表。 2.3。数据存入临时表,调用存储过程进行存在性等其他校验,失败的存入失败表,正确的导入成功表。 2.3。处理完毕,更改状态字段。 3。用户可以查看这个号码组的状态,同时也可以导出出错的号码列表。 |
|
返回顶楼 | |