可能是将一个html 表格变成 Excel 格式的最快方法。 属性通知

浏览器数据要被格式化为何种格式,在这里我们要的格式是 Excel。当浏览器看到这个属性的值是Excel时,它就提示用户保存或打开这个文件。如果用户选择打开文件,

就启动了Excel并在其中观看数据。为使其工作正确,必须在向对象写入任何内容之前设置 。此语法的例子如下:

Line 1: 〈 %@ ="" % 〉

Line 2: . = "/"

Line 3: % 〉

点击这里可以得到有关ASP的 对象的属性的更多信息。

当我试图用 4.x.测试时发现了一个问题,在文章 曾经提到过。 这篇知识库文章的内容可以概括如下:

“如果 与一个动态生成Word、 Excel或其它活动文档的Web服务器

资源相连接时, 会为此资源发出两个GET 请求。第二个GET 通常没有ses

sion 状态信息、临时 或者已经为客户指定的证明信息。这个错误可能影响到任何

寄宿在 结构窗口内的本地服务器(EXE) 的活动文档应用程序。它在ISAP

I、 ASP或 CGI 应用程序中发生最为频繁,它们校验HTTP " Type" 头文件以识别所

安装的应用程序”。

因此如果你尝试使用 变量或 , 并使用IE4,就有可能遭遇到这个错

误。经证实,在IE5中这个问题已经得到解决。

一个用逗号分隔开的值文件是将web页面输出到Excel可读格式的第二种选择。这种格

式比 属性有更大的灵活性。相对于其它方法,CSV还有两个优势:首先,不需

要任何客户机或服务器上的 软件去创建它,第二,文件通常要比一个Excel 文件小。

CSV格式的定义如下:逗号分隔列,回车分隔行。逗号作为分隔符, 也会与包含逗号

的 域(如$1,234)引发一个问题; 这会在将要创建的行中导致一个额外的列。这个问题也

很容易矫正, 方法是在每个结尾处用逗号将域封闭起来。

在提供的例子中把 ()函数过一遍,就能了解CSV文件是如何创建的。

Line 1: = ()

Line 2: Set fs = ("

.")

Line 3: Set a = fs.(.(".") & "" & &

Line 4: ".csv",True)

Line 5: If Not oRS.EOF Then

Line 6: = chr(34) & "Year" & chr(34) & ","

Line 7: = & chr(34) & "" & chr(34) & ","

Line 8: = & chr(34) & "Sales" & chr(34) & ","

Line 9: a.()

Line 10: Do Until oRS.EOF

Line 11: For i = 0 To oRS..Count-1

Line 12: = chr(34) & oRS.(i) & chr(34) Line 13: & ","

Line 14: a.Write()

Line 15: Next

Line 16: a.()

Line 17: oRS.

Line 18: Loop

Line 19: End If

Line 20: a.Close

Line 21: Set fs=

Line 22:.Write("Click〈 A HREF=" & & ".csv 〉Here〈 /A 〉

Line 23: to get CSV file")

第一行调用() 函数创建一个唯一的文件名,有关() 函数将

在稍后讨论。

第2行到第4行,用 对象和函数将要写入的文本文

件。在这个例子中,所写入的文件与源文件在同一个路径下asp服务器,在实际工作中,你也许想要

创建一个单独的路径存储这些文件。

第5-9行产生第一行的标题。因为报告通常都是相同的,我就把列名的代码固定下来,

虽然也有可能读 数据库的列名并使用它们。注意我在各个域中是如何包含逗号的。使用Wri

函数将它们与一个回 车一起发送到文件中。

第10行到18行在记录集中循环,用引号给每个域做出标志,后面跟着一个逗号。然后W

rite函数将每个 域发送到文件。 用回车结束每一行。

最后几行关闭文件、释放对象、在页面上放置一个链接以便能够找回它。

当你点击生成的链接时,就会被提示保存或打开。如果选择打开,文件就在Excel 中

打开(假设计算机 上已经安装)。如果选择了保存,就将这个文本文件保存到存储设备上

并将它输入各个应用程序中。

我所讨论的最后一种方法是用 Excel 对象创建一个实际的Excel(.xls ) 文

件。要使用这些对象要求在Web 服务器上安装Excel。使用这些控制可以对格式化有更多的

控制(如字体、颜色等), 并允许你进行一切在真正的Excel 应用程序中可以进行的操

作。一定要监视你的服务器的性能,因为 Excel 可能成为一个相当大的对象并对性能造成

冲击,这取决于你如何使用它以及服务器有多忙。

我发现在Excel 对象上得到更多信息的最快最简便的方法是使用 Basic对象浏

览器,观看对象 并使用上下文敏感帮助来得到更多细节。使用这个对象浏览器时:启动Vis

ual Basic, 创建一个工程文件, 增加一个对 Excel对象库的引用。在 View 菜

单下,可以选择一个对象浏览器然后指定Excel 库,看到所有可用的对象。按 F1可得到当

前标题的上下文敏感帮助。

在所提供的样本中把() 函数过一遍,就可以看到如何创建一个Excel文

件。 基本步骤与 创建 CSV文件的基本相同,只是所创建的是一个Excel工作表。

Line 1: Dim

Line 2: Dim

Line 3: Set = .("Excel.")

Line 4: . = False

Line 5:

..Add

Line 6: Set = .(1)

Line 7: .Cells(1,1).Value = "Year"

Line 8: .Cells(1,1).. = 5

Line 9: .Cells(1,2).Value = ""

Line 10: .Cells(1,2).. = 5

Line 11: .Cells(1,3).Value = "Sales"

Line 12: .Cells(1,3).. = 5

Line 13: iRow = 2

Line 14: If Not oRS.EOF Then

Line 15: Do Until oRS.EOF

Line 16: For i = 0 To oRS..Count-1

Line 17: .Cells(iRow,i + 1).Value = oRS.(i)

Line 18: .Cells(iRow,i + 1).. = 4

Line 19: Next

Line 20: iRow = iRow + 1

Line 21: oRS.

Line 22: Loop

Line 23: End If

Line 24: = ()

Line 25: . .(".") & "" & & ".xls"

Line 26: .Quit ' Close the

Line 27: Set =

Line 28: Set =

Line 29: .Write("Click 〈 A HRef=" & & ".xls 〉Here〈 /A 〉

to Line 30: get XLS file")

第1行和第2行,确定所使用的 Excel对象的维数。

第3行,创建Excel对象。同样,为了工作正确,web服务器上也必须有Excel。

第4行,将Excel的可见性设置为false,这样它就没有界面了。

第5行和第6行,增加一个容纳工作表的工作簿,然后将当前工作表设置成第一个工作

表(这是Excel 在默认状态下创建的)。 还可以用 对象的Add 函数增加一个新的

工作表, 这就允许你的 Excel 文件中有多个工作表。

第8-12行,创建工作表的标题。在这个例子中,我们把每个单元的值都设置成适当的

标题,而且把内部 颜色设置成兰色。你还可以用Range对象同时修改多个单元。

第13-23行,提供从记录集装载所有数据的循环。因为第一行中包含标题,我就在电子

数据表的 第二行开始数据。里面的 For循环把每一列装载到行中,并把内部颜色设置为绿

色。外部循环则为 每一行在记录集中进行循环。

第24行asp服务器, 通过调用()函数,与CSV用同样的函数来创建唯一的文件名。

第25行,进行电子表格的实际保存。可以将表格存储为 Excel中指定的多种格式。

下面的3行进行对象的整理。作为一个好的ASP程序员,就一定要整理所有的对象。

最后,我把到 Excel文件的链接放在页面上以便下载。

我创建了一个样本,对以上讨论过的每个技巧进行示范。要安装样本,只需要把所有

的文件复制到服务器上,用 main.html 启动应用程序。在服务器上需要有 Excel以使用"Na

tive Excel" 选项。 样本使用一个数据库 (无DSN链接)来存储销售数据。

你可以选择一年或一个地区进行销售报告。最后的选项是你希望如何返回数据。可以

看到以下的屏幕映象:

下面的表格中是对样本中提供的所有文件的描述。

文件名 描述

DSN-SQL.asp 包含无DSN链接字符串

.inc 包含ADO常量

.mdb 包含销售数据的一个数据库。包含的销售表格有3个域:year--Tex

t, --Text,sales-amt--

main.html 本文件创建画面的框架并装载初始页

.html 本文件只在第一次创建结果通常所在的画面框架时使用

.html 包含一个表单,用来收集用户的选择来建立报告

.asp 应用程序的内脏。本文件建立SQL声明、确定客户机如何请求将被返回的数

据、执行SQL并按照请求返回数据

大部分代码都相当容易理解。但是我还是要讨论.asp 文件中的一些函数。我

已经演示过如何创建CSV和Excel 文件。

()函数建立一个被请求数据的HTML表格。这个函数既用来作为HTML返回也用于

请求。为了 请求工作,你要注意 . = "appl

/" 是将要执行的最初几行之一。

()函数使用系统日期建立文件名的第一部分。这个文件名将是唯一的,这

样当你试图存储 文件时就可以避免许多麻烦。扩展名( CSV或XLS )在存储文件时应用,这

样就允许同一个函数产生两种类型的文件。

()函数使用表单变量来建立一个SQL声明,与用户的请求相匹配,并将其返回

调用者。

在脚本的最顶部被打开,因为它对于所选择的显示类型是独立的。

t处理从()函数调用生成的SQL声明,使用一个到 97的无DSN链接。

〈 BODY 〉标记中包含的代码仅仅是两个 "if….then" 声明,确定用户所要求的显示

方法。 if声明分流到生成正确返回类型的函数,该返回类型是基于用户的"" 选

择。接着清除链接和记录集对象。

注意: 这个样本没有涉及到用户下载web服务器上创建的文件之后,对这些文件的维护

问题。我建议 这种维护要基于一段时间,时间到期后就删除这些文件。 我不主张把移走这

些文件的负担转嫁到客户身上(通过页面上的链接),因为他们很容易忘记这些事情。

结论

本文演示了将数据输出到一个Excel可读格式的三种方法。 我相信根据用户的不同需

要,这三种方法都有其可用之地。如果你愿意快速但不漂亮地输出到Excel,就用

pe好了。如果你想要一个格式有限但能够装载到许多不同应用程序中的文件,那么CSV格式

适合你。如果你更喜欢包含完整格式、图标或特殊Excel功能,那么创建一个完全的Excel电

子表格是适合的途径。 但愿这些方法能帮助其他程序员满足客户的要求或者至少帮助你选

择正确的途径。

器服务器w2255处理_asp服务器_百度停止pc浏览器服务


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注