现在开发一项目需要将excel表格中的内容导入到sql 数据库网上也搜索了下,发觉主要有两种导入方法第一种是直接导入,  主要语句就是 ADOConn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + OpenDialog1.FileName + ';Extended Properties=excel 8.0;Persist Security Info=false'; 我是用try .. except ,发觉只要有一条数据不符合格式,就会报错,导致所有数据都不能导入。第二种是编写语句逐条导入,网上也有评论说这样可能会比较慢些。我要导入的数据一般在5000条以下,不知那种更方便?如果采用第一种的话,如何能将所有数据导入而将不能导入数据空出?如果采用第二种的话,如何编写进度条提示导入程度?

解决方案 »

  1.   

    第一种方法,需要先清理excel中的无效数据
    第二种方法,需要在导入过程中对无效数据进行判断,但要处理各种类型无效数据,也是个麻烦事选哪种方法,根据你的excel的规范程度定吧
      

  2.   

    EXCEL文档会有很多“意外”出现,可能肉眼发现不了,如果直接导入SQL的话就常会有问题了。
    因此,除了要对EXCEL文档作一定的规范约束外,还是建议对文档先“预读取”,验证后再写入SQL表。例:某订单EXCEL文档,很多客户都有自己的系统,从系统中将订单信息导出成EXCEL后发给供应商的。
     供应商自己也有系统,需要将客户的EXCEL订单文档导入到系统SQL中去,除了客户的订单是按供应商
     规定的格式下订单外,还会有很多意想不到的现象出现。而且这些现象通过人是很难发现的。因此建立
     “预读”机制,可以实现一个“缓冲”效果,以尽量减少麻烦。
      

  3.   

    不麻烦程序那就只能约束规范别人了。即使别人受了约束,也难免出意外。
    如果想一个语句就能百分百顺利导入SQL,这种可能性很小,SQL数据的合法性也难有百分百保障。