阅读excel并插入数据库

时间:2013-06-28 10:37:54

标签: coldfusion cfspreadsheet

我正在使用以下代码来处理插入内容:但是它需要花费太多时间,如何增强它或使其更快地工作:

<cfspreadsheet action="read" excludeheaderrow="yes" headerrow="1" rows="2-65536" query="mySheet" src="#dest#\#newfile#" sheet="1">
      <cftry> 
      <cfquery datasource="#request.dsn#" name="myInsert">
      <cfoutput>
      <cfloop query="mySheet">
        INSERT INTO mytable(memberID,lastname,firstname,pid,pname,gender,dob,workphone,homephone,address1,address2,city,county,state,zip,marketValue) 
        values('#mySheet.mem_id##RandRange(1,100)#','#mySheet.MEM_LAST_NAME#','#mySheet.MEM_FIRST_NAME#','#mySheet.PCP_ID#','#mySheet.pcp_name#','#mySheet.gender#','#mySheet.dob#','#mySheet.WORKTELEPHONENUMBER#','#mySheet.HOMETELEPHONENUMBER#','#mySheet.ADDRESSLINE1#','#mySheet.ADDRESSLINE2#','#mySheet.CITY#','#mySheet.COUNTY#','#mySheet.state#','#mySheet.zip#','#mySheet.GROUPNAME#')
      </cfloop>
      </cfoutput>
       </cfquery>
excel表中的

记录超过50000

1 个答案:

答案 0 :(得分:0)

这是处理它的一种方法:

  • 将整个内容(cfspreadsheet和所有插入内容)放入threaded函数中,以便它可以在后台运行
  • 将电子表格查询(上传结果)保存到会话变量
  • 上传完成后,批量插入查询;在每个批处理中将任何问题添加到也在会话范围内的反馈数组
  • 在用户端,有一个页面告诉用户事情正在“工作......”并重新加载并显示反馈问题(最好与ajax一起使用)