各位大虾,
   小弟小弟现在有个“重大”问题,望各位出手帮助???先谢过了   本地有个几十M的Excle,当然有列头,数据有一定的形式,现在需要统计其中重复的记录,并找出重复的行号?
    
    本人的设想是先将数据直接导入数据库,然后根据数据库查询的特征,进行判断统计。   现在我使用jcom解析excel(poi、jxl均通过测试,无法解析太大的Excle),获取每行,然后插入数据库,可是,事与愿违,数据是一行一行写入(insert),但是那个速度!!!!不敢恭维,前台一直处于等待中。   所以,各位大虾,高人,帮帮俺了,再谢过了!!!!!  (后台使用Java语言)

解决方案 »

  1.   

    我以前也做过,当数据量没你那么大,我的只有几万条数据。
    我是用jdbc批量插入实现的,你那样一条一条那还不要死人。
      

  2.   

      1. 选中图表中的所有记录(注意,此时应将每列的标题行也选择上,否则筛选完的数据表中将不再包含有该标题行),执行“数据”菜单→“筛选→高级筛选”命令  2. 在弹出的“高级筛选”对话框中选择“将筛选结果复制到其他位置”一项,并点击“复制到”选择框后面的范围按钮来选择一块区域以存放筛选后的数据(注意:此处千万不要与原数据所处的单元格相重合,否则数据表将会混乱),最后,勾选“选择不重复的记录”复选框后,点击“确定”按钮即可。
      3. 此时,Excel便会将所有的重复记录自动删除掉,确认无误后,您就可以把新生成的数据清单拷贝到新的工作表中继续使用了。
      

  3.   

    我最近也在学习如何从Excel导入数据库 希望LZ找到更好的解决办法.
      

  4.   

    不清楚有没有处理Excel数据的jdbc驱动,可以直接像操作数据库一样,查询统计Excel数据。 你可以搜一下
      

  5.   

      最近我有尝试了下,同样是jdbc的batch执行,500行提交一次,不过速度也不行。
       貌似excle单个sheet最多容量65536条记录,使用poi遍历行、列获取cell值,然后每500次提交一次,可是时间仍然很长??我就奇怪了,jdbc批提交的效率这么低么? 针对此点,还望各位再指点一下
      

  6.   

    excel生成sql语句 在数据库中运行sql语句。我只做过几万的数据,感觉还行。
    =CONCATENATE("insert into student(studentID,studentname,studentsex,coursetime)values('",A6,"','",B6,"','",C6,"','",D6,"');"),像这样的……不知道是不适合你的
    还有一个方法就是通过数据源……但是具体怎么用还不清楚
      

  7.   

    看你的后台数据库是什么,如果是ms的sqlserver,用它的数据库客户端直接导入,是很快的,都是ms的东西,自身兼容性那还用说。如果是其他数据库,只能通过excel解析再一条条的insert了。最后一种办法,vba。估计也慢,但是省去了解析&insert的操作。你看着办
      

  8.   

    不清楚有没有处理Excel数据的jdbc驱动,可以直接像操作数据库一样,查询统计Excel数据。 你可以搜一下
      

  9.   

    SQL server可以直接导入Excel到数据库中
      

  10.   

    可以使用jdbc-odbc桥来读取excel的每一行(第一行每一列的值作为字段名),先在控制面板的管理工具中设置一个odbc数据源,然后通过odbc数据源来访问excel,注意的是excel的表名是“[工作簿名$]”,如sheet1,需这样访问:select * from [sheet1$],odbc的数据库驱动类为:sun.jdbc.odbc.JdbcOdbcDriver,sun的j2se中自带,数据库连接字符串为jdbc:odbc:数据源名称
      

  11.   

    用jxl吧 参照我以前写的一篇blog http://blog.csdn.net/wangduokai/archive/2010/08/03/5785955.aspx