我在vs2005平台上要实现这么一个功能,点击一个按钮一次将大量的excel文件数据导入到sqlserver2005中
我用的是ajax技术,在前台用javascript操做excel文件,循环读取所有的excel文件,每读取一行就放进一个数组里通过web服务传到后台用c#语言将一行数据插入到数据库。思路大概就是这样。
   现在功能已经实现了,具体代码如下
用javascript定义一个函数,循环读取excel文件数据
function readExcel()
     { 
       
       try
       {   
            
            var ExcelNum=new Array();
              //重复导入之前,删除上次导入的同期数据
          WebServiceExcel.deleteOldNumber();
                var oXL = new ActiveXObject("Excel.Application");
               \\r_c_num[5]的值为excel文件的名字
                var path=document.all.excelpath.value+"\\"+r_c_num[5]
              var oWB = oXL.Workbooks.open(path);
                 \\如果excel文件有多个sheet的话从第一个sheet循环读取
              for(var x=1;x<=oWB.worksheets.count;x++)
              {
                  oWB.worksheets(x).select();
                  var oSheet =oWB.ActiveSheet;
                   \\按指定开始行和开始列读取excel文件的数据
                  for(var i=parseInt(r_c_num[6]);i<=parseInt(r_c_num[7]);i++)
                  {
                      for(var j=parseInt(r_c_num[8]);j<=parseInt(r_c_num[9]);j++)
                      {
                          if(typeof(oSheet.Cells(i,j).value)=="undefined")
                          {
                              ExcelNum[j-parseInt(r_c_num[8])+6]="";
                          }
                          else
                          {
                              switch_letter(j);
                              ExcelNum[j-parseInt(r_c_num[8])+6]=oSheet.Cells(i,j).value;
                          }
                      }
                         //将读取的一行数据传到后台插入到数据库
                      WebServiceExcel.insert_From_Excel(ExcelNum);
                  }
              }
            }
}
catch(err)
{
    alert("出错了,"+err.message);
}
}
这只是前台的关键代码。
现在的问题是,如果excel文件数据太多的话,导入过程要等好长时间,性能太差了,不知道该怎么改进???如果导几千行数据就不行了,时间让我无法忍受。请高手赐教,很着急用,谢谢了!!!

解决方案 »

  1.   

    等了时间长了,IE就提示:“您的脚本运行将导致IE运行变慢,是否继续运行?:是或否”不知道到底性能差在哪里了?请赐教
    在线等待
    不胜感激!!!
      

  2.   

    典型的不进行问题分析,就乱用技术!上传以后再导入数据库不就可以了,因为 Server 的处理能力要比客户端强多了!基本思路:上传 Excel 文件到 WebServer,
    OLDB 读取数据(WebServer 上无需安装 Excel),
    插入到 DB,
    删除 Excel!个人意见,仅供参考!
      

  3.   

    网上可以搜到许多相关代码,给些关键词提示,LZ 自己查查吧!命名空间
    using System.Data.OleDb;关键类
    OleDbConnection, OleDbDataAdapter
      

  4.   

    Search Key wordsexcel 导入 sqlserver oledbConnection列表里一大堆,LZ 自选