快速将excel导入到MSsql的方法

hld5511 2014-05-06 02:04:44
我做了一个将excel导入到MSsql的功能,百十来条数据还行,过万条很慢,有没有更快速的导入方法?


<%
Set xlsconn = server.CreateObject("adodb.connection")
set rs=server.CreateObject("adodb.recordset")

source1=server.mappath("..")&"\"&replace(request("path"),"/","\")
myConn_Xsl="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &source1& ";Extended Properties=Excel 8.0"
xlsconn.open myConn_Xsl

sql="select * from [列表$]"
set rs=xlsconn.execute(sql)
if not rs.eof then
while not rs.eof
names=rs("品名")
pic=rs("图片")

sql="insert into [product](namese,pic) values('"& names &"','"& pic &"')"
conn.execute(sql)

rs.movenext
wend

end if
response.write "导入成功"
end if
%>
...全文
1184 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Seven小七 2014-05-22
  • 打赏
  • 举报
回复
可以通过建立记录集来导入excel 以下是我做过一个项目的源码片段,希望能给你一些启发

<%
dim econn
set econn=server.createobject("adodb.connection")
econn.open "driver={Microsoft Excel Driver (*.xls)};DBQ="&server.mappath("Excel/dikouExcel.xls")

dim ers
set ers=server.CreateObject("adodb.recordset")
ers.open "select * from [Sheet1$]",econn,1,1
%>

<table width="100%"  border="0" cellpadding="0" cellspacing="0">
<tr>
    <td align="center"><%=ers(0).name%></td>
    <td align="center"><%=ers(1).name%></td>
    <td align="center"><%=ers(2).name%></td>
    <td align="center"><%=ers(3).name%></td>
    <td align="center"><%=ers(4).name%></td> 
    <td align="center"><%=ers(5).name%></td> 
    <td align="center"><%=ers(6).name%></td>            
          
</tr>
<%
do while not ers.eof
%>
</p>

   <tr>
    <td align="center"><%=ers(0).value%></td>
    <td align="center"><%=ers(1).value%></td>
    <td align="center"><%=ers(2).value%></td>
    <td align="center"><%=ers(3).value%></td>    
    <td align="center"><%=ers(4).value%></td>    
    <td align="center"><%=ers(5).value%></td>    
    <td align="center"><%=ers(6).value%></td>        
</tr>

<%
ers.movenext
loop
ers.close
%>
</table>
什么都不能 2014-05-20
  • 打赏
  • 举报
回复
还有一种方法,在ex cel数据行后的一个字段写sqll, =concatenate("insert into [product] (namese,pic) values('", a2 &"','",b2,"');") 一拖动,拖到sheet最后一行,然后选中列,copy paste to text文件中,一个脚本就编完了。
什么都不能 2014-05-20
  • 打赏
  • 举报
回复
如果只是
引用 8 楼 hld5511 的回复:
[quote=引用 6 楼 hanpoyangtitan 的回复:] 应该用跑批。
没明白[/quote] executeBatch 批量提交 如果是我,我会用vbs生成.sql脚本文件,跑脚本,几万条应该也不会很慢。
hld5511 2014-05-20
  • 打赏
  • 举报
回复
引用 6 楼 hanpoyangtitan 的回复:
应该用跑批。
没明白
hld5511 2014-05-20
  • 打赏
  • 举报
回复
什么是"跑批"
什么都不能 2014-05-17
  • 打赏
  • 举报
回复
应该用跑批。
hld5511 2014-05-16
  • 打赏
  • 举报
回复
除了ASP外 .net或php有什么好方法吗?
傲雪星枫 2014-05-16
  • 打赏
  • 举报
回复
sql="insert into [product](namese,pic) values('"& names &"','"& pic &"')" 这里拼接多条语句再执行。这样可以减少锁表次数。 例如 INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0); INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_1', 'content_1', 1); 写成 INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0), ('userid_1', 'content_1', 1);
hld5511 2014-05-07
  • 打赏
  • 举报
回复
期待高手帮忙!!!
hld5511 2014-05-06
  • 打赏
  • 举报
回复
必需要用asp来实现,因为还要配合查询\更新等操作. 除了这种方法, asp还能实现哪种导入方式?
Go 旅城通票 2014-05-06
  • 打赏
  • 举报
回复
直接打开企业管理器进行导入。。 1w条数据肯定需要点时间的。。而且还是通过asp来处理

28,391

社区成员

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

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