﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-海纳百川·有容乃大-文章分类-编程技术 [ASP]</title><link>http://www.cnitblog.com/purefire/category/4174.html</link><description>净火网络联盟</description><language>zh-cn</language><lastBuildDate>Wed, 05 Oct 2011 16:01:10 GMT</lastBuildDate><pubDate>Wed, 05 Oct 2011 16:01:10 GMT</pubDate><ttl>60</ttl><item><title>ASP操作Excel</title><link>http://www.cnitblog.com/purefire/articles/19198.html</link><dc:creator>净火网盟</dc:creator><author>净火网盟</author><pubDate>Wed, 15 Nov 2006 15:26:00 GMT</pubDate><guid>http://www.cnitblog.com/purefire/articles/19198.html</guid><wfw:comment>http://www.cnitblog.com/purefire/comments/19198.html</wfw:comment><comments>http://www.cnitblog.com/purefire/articles/19198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/purefire/comments/commentRss/19198.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/purefire/services/trackbacks/19198.html</trackback:ping><description><![CDATA[
		<p>
				<font color="#000000" size="1">Fso写入： <br />Dim fso, tf,aa <br />Set fso = CreateObject("Scripting.FileSystemObject") <br />aa = server.MapPath("aa.xls") <br />Set tf = fso.CreateTextFile(aa, True) <br />' 写一行，并且带有新行字符。 <br />tf.WriteLine("***" &amp; CHR(009) &amp; "***") <br />tf.Close <br />Response.Write "创建成功！" </font>
		</p>
		<p>
				<font color="#000000" size="1">主要思路是用Fso创建一个xls文件，用Tab分隔符，分隔数据。 </font>
		</p>
		<p>
				<font color="#000000" size="1">Excel.Application读取Excel数据： </font>
		</p>
		<p>
				<font color="#000000" size="1">&lt; </font>
				<a href="mailto:%@language=vbscript">
						<font color="#000000" size="1">%@language=vbscript</font>
				</a>
				<font color="#000000" size="1"> %&gt; <br />&lt;% </font>
		</p>
		<p>
				<font color="#000000" size="1">Set xlApp = server.CreateObject("Excel.Application") </font>
		</p>
		<p>
				<font color="#000000" size="1">strsource = Server.MapPath("data.xls") </font>
		</p>
		<p>
				<font color="#000000" size="1">Set xlbook = xlApp.Workbooks.Open(strsource) <br />Set xlsheet = xlbook.Worksheets(1) </font>
		</p>
		<p>
				<font color="#000000" size="1">i=1 <br />response.write "&lt;table cellpadding=0 cellspacing=0 border=1 width=500&gt;" <br />while xlsheet.cells(i,1)&lt;&gt;"" </font>
		</p>
		<p>
				<font color="#000000" size="1">response.write "&lt;tr&gt;" <br />response.write " &lt;td height=20 align=center width=100&gt;" &amp; xlsheet.Cells(i, 1) &amp; "&lt;/td&gt;" <br />response.write " &lt;td height=20 align=center width=200&gt;" &amp; xlsheet.Cells(i, 2) &amp; "&lt;/td&gt;" <br />response.write "&lt;/tr&gt;" <br />i=i+1 </font>
		</p>
		<p>
				<font color="#000000" size="1">wend <br />response.write "&lt;/table&gt;" <br />set xlsheet=nothing <br />set xlbook=nothing <br />xlApp.quit '千万记住要加这一句，否则每运行一次你的机器里就增加一个excel进程，而且无法释放。我试过"set xlApp=nothing"是不行的。 <br />%&gt; </font>
		</p>
		<p>
				<font color="#000000" size="1">Excel.Application写入Excel数据： </font>
		</p>
		<p>
				<br />
				<font color="#000000" size="1">&lt;html&gt; <br />&lt;head&gt; <br />&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2****2"&gt; <br />&lt;title&gt;无标题文档&lt;/title&gt; <br />&lt;/head&gt; </font>
		</p>
		<p>
				<font color="#000000" size="1">&lt;body&gt; <br />&lt;TABLE id="outtable" name="outtable"&gt; <br />&lt;TR&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;/TR&gt; <br />&lt;TR&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;/TR&gt; <br />&lt;TR&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;/TR&gt; <br />&lt;TR&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;TD&gt;asdf&lt;/TD&gt; <br />&lt;/TR&gt; <br />&lt;/TABLE&gt; <br />&lt;input type="button" name="out_excel" onclick="AutomateExcel();" value="导出到excel" class="notPrint"&gt; <br />&lt;SCRIPT LANGUAGE="javascript"&gt; <br />function AutomateExcel() <br />{ <br />var oXL = new ActiveXObject("Excel.Application"); <br />var oWB = oXL.Workbooks.Add(); <br />var oSheet = oWB.ActiveSheet; <br />var hang = outtable.rows.length; </font>
		</p>
		<p>
				<font color="#000000" size="1">var lie = outtable.rows(0).cells.length; </font>
		</p>
		<p>
				<font color="#000000" size="1">for (i=0;i&lt;hang;i++) <br />{ <br />for (j=0;j&lt;lie;j++) <br />{ <br />oSheet.Cells(i+1,j+1).value = outtable.rows(i).cells(j).innerText; <br />} </font>
		</p>
		<p>
				<font color="#000000" size="1">} <br />oXL.Visible = true; <br />oXL.UserControl = true; <br />} <br />&lt;/SCRIPT&gt; <br />&lt;/body&gt; <br />&lt;/html&gt; </font>
		</p>
		<p>
				<font color="#000000" size="1">上面的办法没有调试成功，应该是JS没有权限的问题，改成服务端运行应该可以。</font>
		</p>
		<p>
				<font color="#000000" size="1">用ado读取Excel导入到access <br />&lt;%<br />Dim cn,oConn,connstr<br />'打开XLS.<br />Set cn = Server.CreateObject("ADODB.Connection")<br />cn.Provider = "Microsoft.Jet.OLEDB.4.0 "<br />cn.ConnectionString = "Data Source=" &amp; Server.MapPath("data.xls") &amp; ";" &amp; _<br />"Extended Properties=Excel 8.0;"<br />cn.Open<br />'打开MDB.<br />connstr="DBQ="+server.MapPath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"<br />set oConn=server.CreateObject("ADODB.CONNECTION")<br />oConn.open connstr</font>
		</p>
		<p>
				<font color="#000000" size="1">'读取数据.<br />set rsRead=server.CreateObject("ADODB.Recordset") <br />rsRead.Open "select * from [Sheet1$]",cn,1,1 <br />do until rsRead.EOF <br />'写入数据库.<br />oConn.Execute("Insert into users(userid,password)Values('"&amp; rsRead.Fields("userid")&amp;"','" &amp;rsRead.Fields("password") &amp; "')" ) <br />rsRead.MoveNext <br />loop<br />%&gt;</font>
		</p>
		<p>
				<br />
				<font color="#000000" size="1">数据库data.mdb</font>
		</p>
		<p>
				<font color="#000000" size="1">表users<br />id,uesrid,password</font>
		</p>
		<p>
				<font color="#000000" size="1">Excel文件data.xls</font>
		</p>
		<p>
				<font color="#000000" size="1">数据<br />useridpassword<br />wangw521<br />zhangez254<br />hongh112</font>
		</p>
		<p>
				<br />
				<font color="#000000" size="1">'=====================!!!!ASP读取EXCEL注事项!!!!===========================<br />'i)将Excel97或Excel2000生成的XLS文件（book）看成一个数据库，其中的每一个工作表(sheet)看成数据库表<br />'ii)ADO假设Excel中的第一行为字段名.所以你定义的范围中必须要包括第一行的内容<br />'iii)Excel中的行标题（即字段名）不能够包含数字. Excel的驱动在遇到这种问题时就会出错的。例如你的行标题名为“F1”<br />'iiii)如果你的Excel电子表格中某一列同时包含了文本和数字的话,那么Excel的ODBC驱动将不能够正常, 处理这一行的数据类型，你必须要保证该列的数据类型一致<br />'===========================================================</font>
		</p>
<img src ="http://www.cnitblog.com/purefire/aggbug/19198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/purefire/" target="_blank">净火网盟</a> 2006-11-15 23:26 <a href="http://www.cnitblog.com/purefire/articles/19198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>