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

ASP
一个ASP版的图片浏览管理器
无组件上传图片至SQLSERVER数据库
利用Jmail.Message发送邮件
用Web页面执行客户端程序
多图片上传到指定的目录并存到数据库
dreamweaverMX通用分页代码研究
下拉菜单输入,根据输入内容自动定位
中文的无组件文件上传ASP函数
一个利用adsi得到局域网信息的asp文件
根据需要动态include不同的文件
让自定义文件下载支持断点续传
用数组实现数据记录的批量录入方法
上传的进度条 实时反映上传情况
用ASP动态生成javascript的表单验证代码
ASP 编程中20个非常有用的例子
ASP生成Word文档的又一方法
用asp解析图片地址,并将其保存。
利用ASP的文件操作实现用户管理
创建 Visual Basic COM 组件在 ASP 中使用
调试 ASP 中使用的 Visual Basic COM 组件

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 92 ::
收藏到网摘: 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组件。