当前位置: 首页 > 图文教程 > 网络编程 > ASP > 利用ASP将HTML格式数据传输给Excel 的技巧

ASP
对连串英文自动换行的解决方法 IE5.5
怎样写你自己的EMAIL组件(原理)
ASP中有关timeout超时的体会
用ASP实现从SQL Server导出数据到Access
ASP向NT域中加一个用户
ASP乱码的解决方法
关于 aspsmartupload 注册问题
利用XML不离开页面刷新数据
IIS 处理 SEARCH 请求漏洞
不用组件实现上载功能(1)
不用组件实现上载功能(2)
在网页中实现OICQ里的头像选择的下拉框
仅用xsl和asp实现分页功能
如何使用context()方法将数据置入表格(XML)
利用ASP从远程服务器上接收XML数据
将数据库里面的内容生成EXCEL
怎样在ASP里面创建统计图表
加密你的Access数据库
利用global.asp定时执行ASP
加密QueryString数据

利用ASP将HTML格式数据传输给Excel 的技巧


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 114 ::
收藏到网摘: n/a

学习如何建立ASP页面将HTML数据流传送到Execl电子表格,并且在IE中显示Execl电子表格。

到目前为止,有好几种方法可以使用ASP技术来创立Excel数据表格,你还可以利用服务器端Excel 8.0 VBA组件建立电子数据表。但是,某些情况下服务器可能无法处理所涉及到的信息量或无法承担所形成的工作负载,因此你不得不牺牲某些为客户机提供的处理性能。本文将主要讨论有关客户端的数据表格处理问题。Excel 97具有某些特别的性能可以象处理电子表格一样处理HTML格式数据流,这一特别的处理能力仅在Excel 97或更高版本中才具有,而且用户需要建立类似Excel电子表格数据流才能更有效的给以处理。

那么,浏览器是否也具有类似功能呢?Internet Explorer(IE)3.0或更高版本能够像Excel一样显示Microsoft Excel 工作表格, 前提是客户机需要装栽 Excel。 如果用户打开IE浏览器并输入Excel工作表格文件名做为URL,IE就会打开工作表。IE利用文件的扩展名以辨别是否是mime格式文件并启动相应的应用程序, 当IE处理Excel mime格式文件时,IE将该文件转变为application/vnd.ms- excel并启动Excel供用户查看有关的表格数据。

本文将讨论如何建立ASP主页,该主页能够将HTML数据流传送给Excel电子数据表。 利用这一技术IE浏览器可以像Excel那样显示HTML数据表。在下面的例子当中, ASP主页将启动一组件,该组件可以处理存储在NWIND SQLSever 6.5中的雇员表记录,同时将该表以HTML表格形式显示。

建立HTML表格
首先建立ASP主页,将该主页添加到Visual InterDev项目中,文件名为ContentType.asp, 如同图 A 。然后将代码A所显示的代码添加到主页中,第一行代码可以将所涉及主页的mime type转变为Excel mime type。下面几行代码将启动我们早先建立的组件以获取ADOR记录区的数据。 这些代码如同ListingA中所显示将在记录区循环处理并建立一个HTML表格, 该表格包括雇员表中每行的记录。

代码 A:Code for adding new ASP page to Visual InterDev Project
<%@ Language=VBScript %>

<%Response.ContentType = "application/vnd.ms-excel"%>

<%
Dim objEmployee, rs

set objEmployee=server.CreateObject("EmpReport.Employee")

Set rs = objEmployee.GetEmployee()

'Draw a Table

%>
<TABLE>
 <TR>
  <TD><STRONG><FONT FACE="" size=4>Employee
   Report</FONT></STRONG></TD>
 </TR>
 <TR>
  <TD>Employee Id</TD>
  <TD>First Name</TD>
  <TD>Last Name</TD>
  <TD>Title</TD>
 </TR>
    <%
 Do while not rs.eof
 %>
 <TR>
  <TD>
            <%=rs("EmployeeId")%></TD>
  <TD>
            <%=rs("LastName")%></TD>
  <TD>
            <%=rs("FirstName")%></TD>
  <TD>
            <%=rs("Title")%></TD>
 </TR>
    <%
 rs.movenext
loop
%></TABLE>

完成输入代码后, 保存并浏览该主页。该主页如同图 B 。注意该电子表格中的所有行并未实行任何格式化处理。当我们使用Excel VBA组件创立工作表格时,我们可以利用VBA方式对表格加以调整。 但是,在使用HTML方式下对表格加以通常的格式化处理是比较困难的,除非你能方便地显示和读取HTML表格的有关数据。利用ASP主页技术我们能够做到这一点,而且可以实现目前Microsoft Excel所支持的所有功能, 其中包括SUM功能。需要注意的是,利用HTML创立的工作表格中没有包括一些标准的标示符号,例如<HTML> 及<BODY>。当我们建立与Excel工作表格互换数据的HTML表格时,尽量不要在ASP主页中使用<HTML>,<BODY>,<HEAD>等标示符号,因为Excel工作表格通常无法正确这些标示符号。

在HTML表格中使用标准的Excel功能
Excel 97允许用户利用Excel所具有的运算公式在HTML表格中实行标准的计算处理,例如使用total及sum等运算功能。利用这一特点的显著优势是,将需要实行计算处理的工作表格移到客户端处理从而极大的减少了对宝贵的服务器资源的占用,同时也减少了在服务器与客户机之间实行信息传递的网络负担。例如图 C 所示起名为sumit.asp的主页的情况, 建立的HTML表格显示了Excel工作表格中两列的总和。 请注意代码B中的代码, 第一行代码将表中的内容格式转变为Excel格式, 如此浏览器将得知是哪种类型的应用程序在为HTML表格传递数据。我们建立了一个具有两列的表格,第二列行中包括了两组数值:2和3。第三行中的数值为前两个数值的总和,这里使用的是Excel的=sum(b1:b2)计算功能。

代码 B: Code for creating an HTML table that displays sum of two columns in Excel worksheet

<%@ Language=VBScript %>

<%Response.ContentType = "application/vnd.ms-excel"%>

<TABLE>
 <TR>
  <TD></TD>
  <TD><!-- Cell : B1 -->2</TD>
 </TR>   
 <TR>
  <TD></TD>
  <TD><!--Cell : B2 -->3</TD> 
 </TR>
 <TR>
  <TD><STRONG>Sum</STRONG></TD>
  <TD>=SUM(B1:B2)</TD> 
 </TR>
</TABLE>

结论有好几种不同的方式可以利用浏览器应用程序显示Excel工作表格。 具体使用哪一种方式要依照不同情况而定:你所要实行的数据处理是在客户机上还是在服务器中? 在程序运行过程当中是否需要多种的格式化处理? 最终用户所使用的是否是IE浏览器?如果你的工作表格比较复杂而且十分重要,你最好是考虑建立一Excel模板,然后利用服务器端VBA COM将数值填入。 如果你的工作表格比较简单或者只是在客户机端运行处理,你可以考虑使用HTML数据流处理。另一方面,如果你的用户使用的是Netscape Navigator浏览器,那么你的所有的数据处理必须在服务器端运行并使用COM VBA组件。