📄 nb联盟15.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0054)http://www.51base.com/article/view_article.asp?id=9803 -->
<HTML lang=zh-cn><HEAD><TITLE>NB联盟</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK
href="NB联盟15.files/style.css" rel=stylesheet>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY><!-- start page body -->
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 class=td id=position
width=773>
<TBODY>
<TR>
<TD class=shadow colSpan=2 height=20 width=262> <A
href="http://www.51base.com/"><IMG border=0
src="NB联盟15.files/logo1.gif"></A> </TD>
<TD align=right width=505>
<P align=left></P></TD></TR></TBODY></TABLE>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 id=main width=770>
<TBODY>
<TR>
<TD class=tdlbr vAlign=top>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 id=welcome
style="TABLE-LAYOUT: fixed" width="98%">
<TBODY>
<TR>
<TD style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all"
vAlign=top><FONT color=red><B>文章标题</B></FONT><FONT color=red><B>:
用ASP生成Excel数据 </B></FONT>
<HR noShade SIZE=1>
ASP最广泛的用途之一就是生成数据库驱动的Web 报告。通常,这只是在浏览器内的一个HTML
表格中观看报告,但对于某些用户来说是不够的。这些用户希望下载报告的数据,用他们自己的应用程序修改它们,这些应用程序包括电子表格软件(Microsoft
Excel) 或本地数据库 (Microsoft Access)。我将用ASP 示范多种将数据输出到Microsoft
Excel可读格式的技巧。通过使用一个或多个这些技巧,你就可以在你的web 页面上放置一个“输出到Excel”的选项以满足那些用户。
<BR><BR> 原文出处:http://www.asptoday.com/articles/19991103.htm
<BR><BR> 测试环境<BR><BR> 我使用以下环境创建并测试本文提供的样本:<BR><BR> Windows NT
4/SP5 与 IIS 4 <BR> Windows 95 <BR> Internet Explorer 4.x 和 5
<BR> Interdev 6 <BR> Homesite 4.0 <BR> Access 97 <BR> Excel
97 <BR><BR> 这可能是将一个html 表格变成 Microsoft Excel 格式的最快方法。ContentType
属性通知浏览器数据要被格式化为何种格式,在这里我们要的格式是Microsoft
Excel。当浏览器看到这个属性的值是Excel时,它就提示用户保存或打开这个文件。如果用户选择打开文件,就启动了Excel并在其中观看数据。为使其工作正确,必须在向Response对象写入任何内容之前设置ContentType
。此语法的例子如下:<BR><BR> Line 1: 〈 %@ LANGUAGE="VBSCRIPT" % 〉<BR> Line
2: Response.ContentType = "application/msexcel"<BR> Line 3: %
〉<BR><BR> 点击这里可以得到有关ASP的Response 对象的ContentType属性的更多信息。<BR><BR>
当我试图用Internet Explorer 4.x.测试时发现了一个问题,在Microsoft文章 Q185978曾经提到过。
这篇知识库文章的内容可以概括如下:<BR><BR> “如果Internet Explorer 与一个动态生成Word、
Excel或其它活动文档的Web服务器资源相连接时,Internet Explorer会为此资源发出两个GET 请求。第二个GET
通常没有session 状态信息、临时 cookies或者已经为客户指定的证明信息。这个错误可能影响到任何寄宿在Internet
Explorer 结构窗口内的本地服务器(EXE) 的活动文档应用程序。它在ISAPI、 ASP或 CGI
应用程序中发生最为频繁,它们校验HTTP "Content Type" 头文件以识别所安装的应用程序”。<BR><BR>
因此如果你尝试使用session 变量或 cookies,
并使用IE4,就有可能遭遇到这个错误。经证实,在IE5中这个问题已经得到解决。<BR>
一个用逗号分隔开的值文件是将web页面输出到Excel可读格式的第二种选择。这种格式比ContentType
属性有更大的灵活性。相对于其它方法,CSV还有两个优势:首先,不需要任何客户机或服务器上的
软件去创建它,第二,文件通常要比一个Excel 文件小。<BR><BR>
CSV格式的定义如下:逗号分隔列,回车分隔行。逗号作为分隔符, 也会与包含逗号的 域(如$1,234)引发一个问题;
这会在将要创建的行中导致一个额外的列。这个问题也很容易矫正, 方法是在每个结尾处用逗号将域封闭起来。<BR><BR>
在提供的例子中把 CreateCSVFile()函数过一遍,就能了解CSV文件是如何创建的。<BR><BR> Line 1:
strFile = GenFileName()<BR> Line 2: Set fs =
CreateObject("Scripting.FileSystemObject")<BR> Line 3: Set a =
fs.CreateTextFile(server.MapPath(".") & "" & strFile &
Line 4: ".csv",True)<BR> Line 5: If Not oRS.EOF Then<BR> Line 6:
strtext = chr(34) & "Year" & chr(34) & ","<BR> Line 7:
strtext = strtext & chr(34) & "Region" & chr(34) &
","<BR> Line 8: strtext = strtext & chr(34) & "Sales"
& chr(34) & ","<BR> Line 9: a.WriteLine(strtext)<BR>
Line 10: Do Until oRS.EOF <BR> Line 11: For i = 0 To
oRS.fields.Count-1<BR> Line 12: strtext = chr(34) &
oRS.fields(i) & chr(34) Line 13: & ","<BR> Line 14:
a.Write(strtext)<BR> Line 15: Next<BR> Line 16:
a.Writeline()<BR> Line 17: oRS.MoveNext<BR> Line 18: Loop<BR>
Line 19: End If<BR> Line 20: a.Close<BR> Line 21: Set fs=Nothing
<BR> Line 22: Response.Write("Click 〈 A HREF=" & strFile &
".csv 〉Here〈 /A 〉 <BR> Line 23: to get CSV file") <BR><BR>
第一行调用GenFileName() 函数创建一个唯一的文件名,有关GenFileName() 函数将在稍后讨论。<BR><BR>
第2行到第4行,用FileSystemObject 对象和CreateTextFile函数将要写入的文本文件。在这个例子中,
所写入的文件与源文件在同一个路径下,在实际工作中,你也许想要创建一个单独的路径存储这些文件。<BR><BR>
第5-9行产生第一行的标题。因为报告通常都是相同的,我就把列名的代码固定下来,虽然也有可能读
数据库的列名并使用它们。注意我在各个域中是如何包含逗号的。使用WriteLine 函数将它们与一个回
车一起发送到文件中。<BR><BR>
第10行到18行在记录集中循环,用引号给每个域做出标志,后面跟着一个逗号。然后Write函数将每个 域发送到文件。WriteLine
用回车结束每一行。<BR><BR> 最后几行关闭文件、释放对象、在页面上放置一个链接以便能够找回它。<BR><BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -