ASP页面将Excel数据导入到Sqlserver数据库

时间:2021-05-13 04:25:34
Dear All: 
      我现在要实现这样一个功能,打开一个ASP页面单击"Uploading"   按钮后弹出查找文件对话框,就相当于在网页中要上传一个数据时的浏览功能一样. 
      具体的实现是这样的,将保存好的Excel文件(只有4列内容),通过单击上面说的"Uploading"   按钮将Excel中的数据全部导入到本机的MS   Sql   Server数据库中.数据库名称是TestDB,表名是UploadTB表   的列是"staff_id","Task1","Task2","Task3" 
Excel中的列和表中的列相同. 
      简单的说就是通过点击一个"Uploading"按钮出现浏览对话框然后找到待插入数据库中的Excel文件最后将其全部插到表中即可. 
      请高手们帮忙解决一下!   谢谢.

20 个解决方案

#1


你可以先做上传,然后再做导入处理,这样应该就可以了。至于EXCEL的导入,看你要用什么了。如果用APPLICTION的话,你查下VBA的代码就可以知道操作的方法了。或者到HI.BAIDU.COM/JIN_JIE中看下,也许有你要的

#2


非常感谢,我以前用vb6做过好多类似的Task.但是我对asp不熟悉,就连点一个按钮要实现查找文件(就相当于浏览)的功能都实现不了,所以实现起来有困难.思路我比较清楚就是技术上实现起来有些困难.
   能不能再详细点?

#3


<INPUT NAME="FILE1" TYPE="FILE" SIZE="16">浏览文件
导入的话
笨方法
连接到EXCEL文件
一行行读出来
然后循环添加到SQL

代码网上搜索一下吧,懒得写了

#4


谢谢啦,我试试. 如果还有更好的办法那共享一下噢.我在线等......

#5


好像不是太麻烦吧,把上传后的excel文件做为数据源,然后剩下的就是把excel数据源里的数据导到sql里了

咋导?
分析excel数据表、字段然后在SQL里create,完了之后就是导数据

没试过,感觉是这样

#6


查找文件是<input type=file>,网上有许多ASP上传的例子,扒下来就成

至于ASP编码,跟VB里的基本一样

#7


现在浏览功能都实现了,Excel和asp也连好了.就是DataSource和有问题.因为DataSource的来源是Excel的Sheet页.现在运行起来会报错,提示是没有找到Sheet对象.因为DataSource我设的虚拟路径所以会报这个错.但是如果设成绝对路径也不行.等下我吃完饭把报错信息也帖上去大家帮忙看看.
   反正以前用VB6做类似的问题很容易就实现了,由于本人对ASP不熟 所以遇到问题就束手无策了!
谢谢各位的回复!

#8


跟帖关注

#9


http://topic.csdn.net/t/20061212/15/5224974.html

#10


google上搜的,同样的没试过,^_^

#11


以下VBScript是我的代码
<%   
      Dim cn,oConn,connstr   
      '打开XLS.   
      Set cn = Server.CreateObject("ADODB.Connection")   
  
      cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
              "Data Source=" & Server.MapPath("data.xls") & ";" & _
              "Extended Properties=""Excel 8.0;HDR=No'"""
          
      '读取数据.   
       set rsRead=server.CreateObject("ADODB.Recordset")         
       rsRead.Open "select * from [Sheet1$]",cn,1,1 
           
       do until rsRead.EOF 
          adocon.Execute("CREATE TABLE hr_performance..[#SaveExcelData]([staff_id] [nvarchar](50) NOT NULL,[p_year] [nchar](4) NOT NULL,[obj_rate] [nvarchar](4000) NULL,[core_rate] [nvarchar](4000) NULL)")    
          '写入数据库.   
          adocon.Execute("Insert into hr_performance..[#SaveExcelData] (Col1,Col2) Values('"& rsRead.Fields("Col1")&"','"   &rsRead.Fields("Col1")&"')")     
          rsRead.MoveNext     
       loop   
       
  %>   

data.xls我放在IIS服务器的 C:\Inetpub\wwwroot 目录下面



这是运行后IE报的错误:

技术信息(用于支持人员)

错误类型:
Microsoft JET Database Engine (0x80040E37)
Microsoft Jet 数据库引擎找不到对象'Sheet1$'。请确定对象是否存在,并正确地写出它的名称和路径。
/HR_Appraisal/fm_upload_excelfile.asp, 第 41 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) 

网页:
GET /HR_Appraisal/fm_upload_excelfile.asp 

时间:
星期一, 十二月 10, 2007, 11:44:25 



#12


帮顶,仔细搜一下,坛里以前有人帖过比较全的代码,但记不清楚了

#13


谢谢,现在问题基本解决了.我现在最要的就是.客户端点击"浏览"按钮后将找到excel文件上传到远程IIS服务器的"C:\InterPub\"路径下.
   在线等,谢谢......

#14


有没有人知道啊?
就是说通过这段代码 "<INPUT   NAME="FILE1"   TYPE="FILE"   SIZE="16"> " 可以实现查找文件(浏览)的功能.但是找到后只是放了客户端一个输入框中了并没有达到任何效果.因为ASP程序是在IIS服务器上执行的.我的意思是当通过点击浏览按扭后找到该Excel文件的同时将其上传到远程IIS服务器的一个特定目录即可.当上传到IIS硬盘的一个特定的位置后我就一可以通过程序去调用他了.
    很急啊,高手们帮帮忙吧!

#15


有没有人救救命啊?
就是通过一个按钮把一个Excel文件从客户端上传到远程端IIS服务器硬盘上!

#16


有没有人帮忙给看看啊!

#17


网上搜索

化境无组件上传

http://www.baidu.com/s?wd=%BB%AF%BE%B3%CE%DE%D7%E9%BC%FE%C9%CF%B4%AB&lm=0&si=&rn=10&tn=max2_cb&ie=gb2312&ct=0&cl=3&f=1&rsp=5

#18


非常感谢,楼上的方法不错!
问题已全部解决.包括EXCEL的处理以及上传等...
完了给大家加分,谢.............................

#19


Dear All:
    怎么样才能获取IIS服务器的ASP文件存放的全路径.比如"D:\www\aspfile"
我用Application.contents 但是会报错,搞不定.
   因为我目前开发阶段我知道我的IIS服务器中ASP文件存放的实际物理位置,但是当给客户使用是这个存放位置会不确定.所以我怕如果把路径写死会报错.
   各位谁有好办法给介绍一下!  谢谢,在线等......

#20


有没有什么方法啊?

#1


你可以先做上传,然后再做导入处理,这样应该就可以了。至于EXCEL的导入,看你要用什么了。如果用APPLICTION的话,你查下VBA的代码就可以知道操作的方法了。或者到HI.BAIDU.COM/JIN_JIE中看下,也许有你要的

#2


非常感谢,我以前用vb6做过好多类似的Task.但是我对asp不熟悉,就连点一个按钮要实现查找文件(就相当于浏览)的功能都实现不了,所以实现起来有困难.思路我比较清楚就是技术上实现起来有些困难.
   能不能再详细点?

#3


<INPUT NAME="FILE1" TYPE="FILE" SIZE="16">浏览文件
导入的话
笨方法
连接到EXCEL文件
一行行读出来
然后循环添加到SQL

代码网上搜索一下吧,懒得写了

#4


谢谢啦,我试试. 如果还有更好的办法那共享一下噢.我在线等......

#5


好像不是太麻烦吧,把上传后的excel文件做为数据源,然后剩下的就是把excel数据源里的数据导到sql里了

咋导?
分析excel数据表、字段然后在SQL里create,完了之后就是导数据

没试过,感觉是这样

#6


查找文件是<input type=file>,网上有许多ASP上传的例子,扒下来就成

至于ASP编码,跟VB里的基本一样

#7


现在浏览功能都实现了,Excel和asp也连好了.就是DataSource和有问题.因为DataSource的来源是Excel的Sheet页.现在运行起来会报错,提示是没有找到Sheet对象.因为DataSource我设的虚拟路径所以会报这个错.但是如果设成绝对路径也不行.等下我吃完饭把报错信息也帖上去大家帮忙看看.
   反正以前用VB6做类似的问题很容易就实现了,由于本人对ASP不熟 所以遇到问题就束手无策了!
谢谢各位的回复!

#8


跟帖关注

#9


http://topic.csdn.net/t/20061212/15/5224974.html

#10


google上搜的,同样的没试过,^_^

#11


以下VBScript是我的代码
<%   
      Dim cn,oConn,connstr   
      '打开XLS.   
      Set cn = Server.CreateObject("ADODB.Connection")   
  
      cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
              "Data Source=" & Server.MapPath("data.xls") & ";" & _
              "Extended Properties=""Excel 8.0;HDR=No'"""
          
      '读取数据.   
       set rsRead=server.CreateObject("ADODB.Recordset")         
       rsRead.Open "select * from [Sheet1$]",cn,1,1 
           
       do until rsRead.EOF 
          adocon.Execute("CREATE TABLE hr_performance..[#SaveExcelData]([staff_id] [nvarchar](50) NOT NULL,[p_year] [nchar](4) NOT NULL,[obj_rate] [nvarchar](4000) NULL,[core_rate] [nvarchar](4000) NULL)")    
          '写入数据库.   
          adocon.Execute("Insert into hr_performance..[#SaveExcelData] (Col1,Col2) Values('"& rsRead.Fields("Col1")&"','"   &rsRead.Fields("Col1")&"')")     
          rsRead.MoveNext     
       loop   
       
  %>   

data.xls我放在IIS服务器的 C:\Inetpub\wwwroot 目录下面



这是运行后IE报的错误:

技术信息(用于支持人员)

错误类型:
Microsoft JET Database Engine (0x80040E37)
Microsoft Jet 数据库引擎找不到对象'Sheet1$'。请确定对象是否存在,并正确地写出它的名称和路径。
/HR_Appraisal/fm_upload_excelfile.asp, 第 41 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) 

网页:
GET /HR_Appraisal/fm_upload_excelfile.asp 

时间:
星期一, 十二月 10, 2007, 11:44:25 



#12


帮顶,仔细搜一下,坛里以前有人帖过比较全的代码,但记不清楚了

#13


谢谢,现在问题基本解决了.我现在最要的就是.客户端点击"浏览"按钮后将找到excel文件上传到远程IIS服务器的"C:\InterPub\"路径下.
   在线等,谢谢......

#14


有没有人知道啊?
就是说通过这段代码 "<INPUT   NAME="FILE1"   TYPE="FILE"   SIZE="16"> " 可以实现查找文件(浏览)的功能.但是找到后只是放了客户端一个输入框中了并没有达到任何效果.因为ASP程序是在IIS服务器上执行的.我的意思是当通过点击浏览按扭后找到该Excel文件的同时将其上传到远程IIS服务器的一个特定目录即可.当上传到IIS硬盘的一个特定的位置后我就一可以通过程序去调用他了.
    很急啊,高手们帮帮忙吧!

#15


有没有人救救命啊?
就是通过一个按钮把一个Excel文件从客户端上传到远程端IIS服务器硬盘上!

#16


有没有人帮忙给看看啊!

#17


网上搜索

化境无组件上传

http://www.baidu.com/s?wd=%BB%AF%BE%B3%CE%DE%D7%E9%BC%FE%C9%CF%B4%AB&lm=0&si=&rn=10&tn=max2_cb&ie=gb2312&ct=0&cl=3&f=1&rsp=5

#18


非常感谢,楼上的方法不错!
问题已全部解决.包括EXCEL的处理以及上传等...
完了给大家加分,谢.............................

#19


Dear All:
    怎么样才能获取IIS服务器的ASP文件存放的全路径.比如"D:\www\aspfile"
我用Application.contents 但是会报错,搞不定.
   因为我目前开发阶段我知道我的IIS服务器中ASP文件存放的实际物理位置,但是当给客户使用是这个存放位置会不确定.所以我怕如果把路径写死会报错.
   各位谁有好办法给介绍一下!  谢谢,在线等......

#20


有没有什么方法啊?

#21