用ASP如何生成excel报表

用ASP如何生成excel报表


2024年6月21日发(作者:)

用ASP如何生成excel报表

生成报表是做系统经常遇到的事,一些企业或者单位往往要求

EXCEL格式的报表!

第一种方式 利用FSO生成文本文件。

程序代码:

Set fs = Object("stemobject")

'--假设你想让生成的EXCEL文件做如下的存放

filename = "c:"

'-创建EXCEL文件

set myfile = TextFile(filename,true)

sql,conn

if and then

else

dim strLine,responsestr

strLine=""

For each x in

strLine= strLine & & chr(9)

Next

'--将表的列名先写入EXCEL

ine strLine

Do while Not

strLine=""

for each x in

strLine= strLine & & chr(9)

next

'--将表的数据写入EXCEL

ine strLine

xt

loop

end if

Set fs=Nothing

这方法的好处是不管有多少条记录 速度上是没问题 但是有一个很

严重的缺点 就是生成的EXCEL文件的格式不能得到很好的控制 例如

单元格的格式不能改变等

第二种方法 用EXCEL组件+EXCEL模板

原理是打开一个存在的EXCEL模板文件 然后写入数据后在另存为

所要的报表文件

优点:格式能很好的控制

缺点:速度上很慢 (因为控件接口很费资源)

看了微软的说明又想到了用数组做中转的方法 只要打开一个接口

写入所有数据,于是问题得到了解决,可是新的问题出来了,100万或者更

高的记录时 数组就的空间分配就成了问题了.

工夫不负有心人 ,经过几天努力 终于完美解决

就是记录多时分批写入~~~~~~~~~

程序代码:

sub writetoarr(lines,begin_rs,begin_exl)

'======================================

========================================

'过程writetoarr(lines,begin_rs,begin_exl)写入EXCEL

'lines:要写入的记录条数

'begin_rs:从第几条记录开始

'begin_exl:要写入的EXCEL开始位置

'======================================

========================================

redim temparr(lines-1,11)

'--将表的列名存放到数组

'--将表的数据存放到数组

ii=1

For i = begin_rs To begin_rs+lines-1

j=0

' ii&"

"

For each x in

temparr(ii-1,j)=

j=j+1

Next

ii=ii+1

xt

Next

("A"&begin_exl).Resize(lines, 12).Value

= temparr

redim temparr(0,0)

"从A"&begin_exl&"开始写到

A"&begin_exl+lines&"

"

"从第"&begin_rs&"条到"&begin_rs+lines&"

条记录

"

"共写入"&lines&"行

"

"-------------------------

"

end sub

maxk=count

beginrs=1 '从第几条记录开始,一般是1

beginexl=2 '从excel的第几行开始写,一般是2

liness=200 '每次操作多少条记录,不建议超过10万

do while maxk>0

if maxk>liness then

call writetoarr(liness,beginrs,beginexl)

beginrs=beginrs+liness

beginexl=beginexl+liness

maxk=maxk-liness

else

call writetoarr(maxk,beginrs,beginexl)

exit do

end if

loop


发布者:admin,转转请注明出处:http://www.yc00.com/news/1718942101a2753739.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信