探究传递Microsoft Excel文件到客户端的方法

ZDNet软件频道 时间:2003-12-17 作者:ZDNet China |  我要评论()
本文关键词:vb excel
网络开发人员能够建立一个Microsoft Excel文件,并且可以以多种方式将文件传递到客户端。为了能够为你提供多种选择,在这里我们介绍了几种方法。
本文译自Builder.com,未经许可请勿转载

网络开发人员能够建立一个Microsoft excel文件,并且可以以多种方式将文件传递到客户端。为了能够为你提供多种选择,在这里我们介绍了几种方法。虽然这些方法都是以vbscript而编写,但都很容易地转换为你需要的其他脚本语言。

首先,我们查看一个比较简单的方法。在这一方法中,我们传递的是一个HTML表,然后改变传递到浏览器的Content Type。在第二部分,我们将讲述更加复杂和功能强大的方法。我们将使用一个Activex组件直接地在代码和MS excel的当地实例之间建立连接。

一个简单的方法

如果你使用的是一个比较简单的excel工作表,可以采用这一方法。我们建立一个标准的HTML表,然后将其导入到我们的服务器端脚本──在这里是vbsript脚本动态服务器主页(ASP)──使用的是excel的MINE类型而不是HTML类型,这样浏览器就可以管理这些脚本。

在脚本中,我们所做的第一件事是设置即将返回到客户端浏览器的Content Type

Response.ContentType = "application/vnd.ms-excel"

既然已经通知浏览器传递了一个excel文件,我们可以很方便地建立标准的HTML表。表A 中的列表可以从一个数据库的查询或者从静态HTML而产生。

我们也可以在数据中包含一些简单的excel命令。例如,我们可以建立三纵列:第一列值,第二列值以及总值,如表B所示。

你所获得的结果取决于网络浏览器如何处理.XLS文件。很多时候都是通过网络浏览器处理,而其他时候,.XLS文件将打开excel然后再导入文件。这些过程依赖于当地机器的设置,而不是在网络主页的控制范围之内。

对很多开发人员而言,这一技术已经足够。但如果你需要更加复杂或者更加灵活的方法,可以使用一个ActiveX组件。

使用ActiveX组件的方法

如果你使用的不是一个简单的工作表,或者你需要调用某些vbA函数,此时你必须使用ActiveX来建立你的文件。在这一方法中,我们将在客户端上建立一个excel的实例,然后传递数据和函数到excel实例中。

为了能达到我们的要求,终端用户必须在他们的网络浏览器中的ActiveX settings中设置为PromptEnable。(在当前的例子中,这一功能只能在网络浏览器中设置。)

<script language='vbScript'>
Dim Xcl
 
Sub Startexcel()
    Set Xcl = CreateObject("excel.Application")
    Xcl.Visible = true
   Set newBook = Xcl.Workbooks.Add

首先,我们建立我们的excel对象,即Xcl。这一对象有助于实现我们的代码和Exce之间的连接。代码的其他部分将以名为Startexcel而嵌入到vbScript的子程序中。接着,我们使用Server.CreateObject函数来建立与excel的连接并分配给Xcl对象。然后,我们将对象的visibility设置为true,然后在对象中添加一个工作本(Workbook):

newBook.Worksheets.Add


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134