在开发系统的过程中,经常遇到要将本地的excel表中的数据导入到数据库中。
如在数据库在本地,还可以用CONTROL+C/CONTROL+V来进行。在网上的数据库就不那么容易了。
以下程序不论数据库在什么地方,均可轻易地将excel数据导入到数据库中,大大地节约了你的时间。
注意:
1,excel文件的格式为.csv
2,如果出现automactic提示,请设置本地为信认站点
3,表字段用逗号分隔
4,一般的作法是将数据先导入到临时表中,如无错误,再导入到正式表中.或者先在临时数据库中测试.
5,如导入过程中出现错误,可先仔细分析出错原因,纠正后再重新导入.
<%@ LANGUAGE="JAVASCRIPT" %>
<!-- #include file = "adojvs.inc"-->
<!-- #include file = "conn.inc"-->
<span id=err> </span>
<%
Response.Expires=0
// 将本地磁盘的数据读入数据表中, Javascript
// Gu Laicheng, 2008.11.25
var SelectStr,MySQL;
var txt,fld,tab;
var FormMode = Request.Form("FormMode")+"";
if (FormMode=="OK")
{
SelectStr = Request.Form("SelectStr")+"" //完整的select语句
txt = Request.Form("Loadtxt")+"";
fld = Request.Form("fld")+"";
tab = Request.Form("tab")+"";
var A=txt.split(";")
for(var i=0;i<A.length-1;i++)
{
MySql = "insert into "+tab+" ("+fld+") values ('"+A[i].replace(/,/g,"','")+"')"
dc.CommandText = MySql
Debug_Messages(dc.CommandText)
try {
dc.Execute
}
catch (ex) {
var ErrStr = "Error:"+ex+" "+dc.CommandText
var o = conn.Errors
for (var i=0;i<o.Count;i++)
{
ErrStr += "//n"+o.Item(i).Number + ":" + o.Item(i).Description
}
o.Clear()
// Response.Write("<script language=javascript>alert(/""+ErrStr+"/")</script>")
Response.Write("<script language=javascript>err.innerText=/""+ErrStr+"/";</script>")
Response.End
}
}
Response.Write("<script language=javascript>err.innerText=/"成功插入"+A.length+"条记录。/";</script>")
} else if(FormMode=="undefined")
{
txt = ""
fld = ""
tab = ""
}
%>
<form action="<%=Request.ServerVariables("URL")%>" method="POST" name="MyForm0">
<input type=hidden name='FormMode' value='<%=FormMode%>'>
<table>
<tr>
<td>EXCEL数据:</td><td><textarea name=Loadtxt rows=10 cols=80></textarea></td>
</tr>
<tr>
<td>字段名:</td><td><input type=text name='fld' value='<%=fld%>' size=50>(以逗号分隔)</td>
</tr>
<tr>
<td>表名:</td><td><input type=text name='tab' value='<%=tab%>'></td>
</tr>
<tr>
<td></td><td><input type=button name=confirm value='OK' οnclick="FormMode.value='OK';MyForm0.submit();"></td>
</tr>
</table>
</form>
<script language=javascript>
var s = ''
// 如果出现automactic提示,请设置本地为信认站点
// 读取csv文件 Gu Laicheng. 2008.11.25
var fileStr = "d://LoadFromExcel.csv",ForReading=1;
var fso = new ActiveXObject("Scripting.FileSystemObject");
try {
var a = fso.OpenTextFile(fileStr, ForReading,false);
}
catch (ex) {
alert(ex);
}
var s="";
while (!a.AtEndOfStream) s+=a.ReadLine()+";";
a.Close();
MyForm0.Loadtxt.value = s;
if (MyForm0.FormMode.value=="OK")
{
MyForm0.confirm.disabled = 1;
}
</script>