请专家帮忙

fnltq 2008-02-01 12:21:18
专家你好:我想在ASP中使用excel输入数据,且直接保存到access数据库.请教如何操作,有源码提供最好.谢谢
...全文
55 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yousite1 2008-02-01
  • 打赏
  • 举报
回复
楼上提供了。。
yalan 2008-02-01
  • 打赏
  • 举报
回复
很简单啊
请参考下面的程序
下面的程序是把EXCEL导入ACCESS数据库的
你自己简单修改一下就行了

'-------------连接EXCEL文件---------------
Set objExcelConn = Server.CreateObject("ADODB.Connection")
objExcelConn.Provider = "Microsoft.Jet.OLEDB.4.0 "
objExcelConn.ConnectionString = "Data Source=" & strFilePath & ";" & "Extended Properties=Excel 8.0;"
objExcelConn.Open

on error resume next
Set objExcelRs=server.CreateObject("ADODB.Recordset")
objExcelRs.Open "select * from [Sheet1$]",objExcelConn,1,3 'Sheet1可以定义为与服务器表名相同
'-------------打开出错后关闭并释放对象、提示用户---------------
if err.number <> 0 then
objExcelRs.close
objExcelConn.close
conn.close '此处的conn是连接服务器数据库的
set objExcelRs=nothing
set objExcelConn=nothing
response.write "<script language=javascript>"
response.write "alert('请检查Excel工作薄名称是否为Sheet1!');"
response.write "window.history.back();"
response.write "</script>"
end if

Dim i
Dim strValue '存放字段值
Dim strSourceTitle, strDesTitle '存放表头(字段名列表)
Dim strSql

If Not objExcelRs.EOF Then 'Excel表不空
'-------------服务器数据表---------------
Set objLocalRs=server.CreateObject("ADODB.Recordset")
objLocalRs.Open "select * from Sheet1",conn,1,3

'-------------取目的表字段名列表---------------
strDesTitle=""
For i = 0 To objLocalRs.Fields.Count-1
if strDesTitle <> "" then
strDesTitle = strDesTitle & "," & objLocalRs(i).Name
else
strDesTitle = objLocalRs(i).Name
end if
Next
'-------------取源表字段名列表---------------
strSourceTitle=""
For i = 0 To objExcelRs.Fields.Count - 1
if strSourceTitle <> "" then
strSourceTitle = strSourceTitle & "," & objExcelRs(i).Name
else
strSourceTitle = objExcelRs(i).Name
end if
Next

'-------------比较字段名列表是否相同---------------
if Ucase(trim(strSourceTitle))<>Ucase(trim(strDesTitle)) then
'-------------关闭释放对象---------------
objExcelRs.close
objLocalRs.close
objExcelConn.close
conn.close
set objExcelRs=nothing
set objExcelConn=nothing
set objLocalRs=nothing
response.write "<script language=javascript>"
response.write "alert('Excel表中字段名与数据库表不能对应,请核实后重新导入!');"
response.write "window.history.back();"
response.write "</script>"
end if

on error resume next

conn.BeginTrans

'-------------取数据导入---------------
While Not objExcelRs.EOF
sValue=""
For i = 0 To objLocalRs.Fields.Count - 1
if svalue <> "" then
svalue=svalue &",'"& objExcelRs(i)&"'"
else
svalue="'"&objExcelRs(i)&"'"
end if
Next
strSql = "insert into Sheet1 (" & strDesTitle & ") values (" & sValue &")"
conn.execute strSql
objExcelRs.MoveNext
Wend
'-------------提交或回滚事务---------------
if err.number <> 0 then
conn.RollbackTrans
'-------------关闭释放对象---------------
objExcelRs.close
objLocalRs.close
objExcelConn.close
conn.close
set objExcelRs=nothing
set objExcelConn=nothing
set objLocalRs=nothing
response.write "<script language=javascript>"
response.write "alert('无法导入,请检查Excel数据的合法性!');"
response.write "window.history.back();"
response.write "</script>"
else
conn.CommitTrans
'-------------关闭释放对象---------------
objExcelRs.close
objLocalRs.close
objExcelConn.close
conn.close
set objExcelRs=nothing
set objExcelConn=nothing
set objLocalRs=nothing
response.write "<script language=javascript>"
response.write "alert('数据导入成功!');"
response.write "window.history.back();"
response.write "</script>"
end if
else
'-------------关闭释放对象---------------
objExcelRs.close
objExcelConn.close
conn.close
set objExcelRs=nothing
set objExcelConn=nothing
response.write "<script language=javascript>"
response.write "alert('Excel表中没有数据,请核实后重新导入!');"
response.write "window.history.back();"
response.write "</script>"
End If
beyondamane 2008-02-01
  • 打赏
  • 举报
回复
<%@LANGUAGE="JAVASCRIPT"%>
<%
/*if (request("act")=="submit")
{*/

var aa=new String();
aa="1.xls";
aa=Server.MapPath(aa);

var lianjie = Server.CreateObject("ADODB.Connection");
/*lianjie.Open("provider=Microsoft.Jet.OLEDB.4.0; Data Source="+aa+";Extended Properties=Excel 8.0");*/
lianjie.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Extended properties=Excel 5.0;Data Source="+aa);
var rs = Server.CreateObject("ADODB.Recordset");
sql="select * from [Sheet1$]"
rs.Open(sql, lianjie, 3);
if (rs.EOF)
{
Response.Write("window.alert('没有资料)");
}
else
...'写你要到导入到数据库的代码,上面已经可以提取EXECL中的数据了
%>
你也叫风语者 2008-02-01
  • 打赏
  • 举报
回复
学习中
Dogfish 2008-02-01
  • 打赏
  • 举报
回复
建立一个数据源,把excel文件当作数据库。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧