Fso写入:
Dim fso, tf,aa
Set fso = CreateObject("Scripting.FileSystemObject")
aa = server.MapPath("aa.xls")
Set tf = fso.CreateTextFile(aa, True)
' 写一行,并且带有新行字符。
tf.WriteLine("***" & CHR(009) & "***")
tf.Close
Response.Write "创建成功!"
主要思路是用Fso创建一个xls文件,用Tab分隔符,分隔数据。
Excel.Application读取Excel数据:
<
%@language=vbscript
%>
<%
Set xlApp = server.CreateObject("Excel.Application")
strsource = Server.MapPath("data.xls")
Set xlbook = xlApp.Workbooks.Open(strsource)
Set xlsheet = xlbook.Worksheets(1)
i=1
response.write "<table cellpadding=0 cellspacing=0 border=1 width=500>"
while xlsheet.cells(i,1)<>""
response.write "<tr>"
response.write " <td height=20 align=center width=100>" & xlsheet.Cells(i, 1) & "</td>"
response.write " <td height=20 align=center width=200>" & xlsheet.Cells(i, 2) & "</td>"
response.write "</tr>"
i=i+1
wend
response.write "</table>"
set xlsheet=nothing
set xlbook=nothing
xlApp.quit '千万记住要加这一句,否则每运行一次你的机器里就增加一个excel进程,而且无法释放。我试过"set xlApp=nothing"是不行的。
%>
Excel.Application写入Excel数据:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2****2">
<title>无标题文档</title>
</head>
<body>
<TABLE id="outtable" name="outtable">
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
<TR>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
<TD>asdf</TD>
</TR>
</TABLE>
<input type="button" name="out_excel" onclick="AutomateExcel();" value="导出到excel" class="notPrint">
<SCRIPT LANGUAGE="javascript">
function AutomateExcel()
{
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var hang = outtable.rows.length;
var lie = outtable.rows(0).cells.length;
for (i=0;i<hang;i++)
{
for (j=0;j<lie;j++)
{
oSheet.Cells(i+1,j+1).value = outtable.rows(i).cells(j).innerText;
}
}
oXL.Visible = true;
oXL.UserControl = true;
}
</SCRIPT>
</body>
</html>
上面的办法没有调试成功,应该是JS没有权限的问题,改成服务端运行应该可以。
用ado读取Excel导入到access
<%
Dim cn,oConn,connstr
'打开XLS.
Set cn = Server.CreateObject("ADODB.Connection")
cn.Provider = "Microsoft.Jet.OLEDB.4.0 "
cn.ConnectionString = "Data Source=" & Server.MapPath("data.xls") & ";" & _
"Extended Properties=Excel 8.0;"
cn.Open
'打开MDB.
connstr="DBQ="+server.MapPath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set oConn=server.CreateObject("ADODB.CONNECTION")
oConn.open connstr
'读取数据.
set rsRead=server.CreateObject("ADODB.Recordset")
rsRead.Open "select * from [Sheet1$]",cn,1,1
do until rsRead.EOF
'写入数据库.
oConn.Execute("Insert into users(userid,password)Values('"& rsRead.Fields("userid")&"','" &rsRead.Fields("password") & "')" )
rsRead.MoveNext
loop
%>
数据库data.mdb
表users
id,uesrid,password
Excel文件data.xls
数据
useridpassword
wangw521
zhangez254
hongh112
'=====================!!!!ASP读取EXCEL注事项!!!!===========================
'i)将Excel97或Excel2000生成的XLS文件(book)看成一个数据库,其中的每一个工作表(sheet)看成数据库表
'ii)ADO假设Excel中的第一行为字段名.所以你定义的范围中必须要包括第一行的内容
'iii)Excel中的行标题(即字段名)不能够包含数字. Excel的驱动在遇到这种问题时就会出错的。例如你的行标题名为“F1”
'iiii)如果你的Excel电子表格中某一列同时包含了文本和数字的话,那么Excel的ODBC驱动将不能够正常, 处理这一行的数据类型,你必须要保证该列的数据类型一致
'===========================================================