ASP操作Excel技术总结.docx

上传人:b****8 文档编号:9823070 上传时间:2023-02-06 格式:DOCX 页数:52 大小:50.85KB
下载 相关 举报
ASP操作Excel技术总结.docx_第1页
第1页 / 共52页
ASP操作Excel技术总结.docx_第2页
第2页 / 共52页
ASP操作Excel技术总结.docx_第3页
第3页 / 共52页
ASP操作Excel技术总结.docx_第4页
第4页 / 共52页
ASP操作Excel技术总结.docx_第5页
第5页 / 共52页
点击查看更多>>
下载资源
资源描述

ASP操作Excel技术总结.docx

《ASP操作Excel技术总结.docx》由会员分享,可在线阅读,更多相关《ASP操作Excel技术总结.docx(52页珍藏版)》请在冰豆网上搜索。

ASP操作Excel技术总结.docx

ASP操作Excel技术总结

ASP操作Excel技术总结

目录

一、  环境配置

二、  ASP对Excel的基本操作

三、  ASP操作Excel生成数据表

四、  ASP操作Excel生成Chart图

五、  服务器端Excel文件浏览、下载、删除方案

六、  附录

正文

一、  环境配置

服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即:

1.Win9x+PWS+Office

2.Win2000Professional+PWS+Office

3.Win2000Server+IIS+Office

目前笔者测试成功的环境是后二者。

Office的版本没有特殊要求,考虑到客户机配置的不确定性和下兼容特性,建议服务器端Office版本不要太高,以防止客户机下载后无法正确显示。

服务器端环境配置还有两个偶然的发现是:

1.  笔者开发机器上原来装有金山的WPS2002,结果Excel对象创建始终出现问题,卸载WPS2002后,错误消失。

2.  笔者开发ASP代码喜欢用FrontPage,结果发现如果FrontPage打开(服务器端),对象创建出现不稳定现象,时而成功时而不成功。

扩展考察后发现,Office系列的软件如果在服务器端运行,则Excel对象的创建很难成功。

服务器端还必须要设置的一点是COM组件的操作权限。

在命令行键入“DCOMCNFG”,则进入COM组件配置界面,选择MicrosoftExcel后点击属性按钮,将三个单选项一律选择自定义,编辑中将Everyone加入所有权限。

保存完毕后重新启动服务器。

客户端的环境配置没发现什么特别讲究的地方,只要装有Office和IE即可,版本通用的好象都可以。

二、  ASP对Excel的基本操作

1、  建立Excel对象

setobjExcelApp=CreateObject("Excel.Application")

objExcelApp.DisplayAlerts=false    不显示警告

objExcelApp.Application.Visible=false    不显示界面

2、  新建Excel文件

objExcelApp.WorkBooks.add

setobjExcelBook=objExcelApp.ActiveWorkBook

setobjExcelSheets=objExcelBook.Worksheets

setobjExcelSheet=objExcelBook.Sheets

(1)

3、  读取已有Excel文件

strAddr=Server.MapPath(".")

objExcelApp.WorkBooks.Open(strAddr&"\Templet\Table.xls")

setobjExcelBook=objExcelApp.ActiveWorkBook

setobjExcelSheets=objExcelBook.Worksheets

setobjExcelSheet=objExcelBook.Sheets

(1)

4、  另存Excel文件

objExcelBook.SaveAsstrAddr&"\Temp\Table.xls"

5、  保存Excel文件

objExcelBook.Save    (笔者测试时保存成功,页面报错。

6、  退出Excel操作

objExcelApp.Quit  一定要退出

setobjExcelApp=Nothing

三、  ASP操作Excel生成数据表

1、  在一个范围内插入数据

objExcelSheet.Range("B3:

k3").Value=Array("67","87","5","9","7","45","45","54","54","10")

2、  在一个单元格内插入数据

objExcelSheet.Cells(3,1).Value="InternetExplorer"

3、  选中一个范围

4、  单元格左边画粗线条

5、  单元格右边画粗线条

6、  单元格上边画粗线条

7、  单元格下边画粗线条

8、  单元格设定背景色

9、  合并单元格

10、  插入行

11、  插入列

四、  ASP操作Excel生成Chart图

1、  创建Chart图

objExcelApp.Charts.Add

2、  设定Chart图种类

objExcelApp.ActiveChart.ChartType=97

注:

二维折线图,4;二维饼图,5;二维柱形图,51

3、  设定Chart图标题

objExcelApp.ActiveChart.HasTitle=True

objExcelApp.ActiveChart.ChartTitle.Text="AtestChart"

4、  通过表格数据设定图形

objExcelApp.ActiveChart.SetSourceDataobjExcelSheet.Range("A1:

k5"),1

5、  直接设定图形数据(推荐)

objExcelApp.ActiveChart.SeriesCollection.NewSeries

objExcelApp.ActiveChart.SeriesCollection

(1).Name="=""333"""

objExcelApp.ActiveChart.SeriesCollection

(1).Values="="

6、  绑定Chart图

objExcelApp.ActiveChart.Location1

7、  显示数据表

objExcelApp.ActiveChart.HasDataTable=True

8、  显示图例

objExcelApp.ActiveChart.DataTable.ShowLegendKey=True

五、  服务器端Excel文件浏览、下载、删除方案

浏览的解决方法很多,“Location.href=”,“Navigate”,“Response.Redirect”都可以实现,建议用客户端的方法,原因是给服务器更多的时间生成Excel文件。

下载的实现要麻烦一些。

用网上现成的服务器端下载组件或自己定制开发一个组件是比较好的方案。

另外一种方法是在客户端操作Excel组件,由客户端操作服务器端Excel文件另存至客户端。

这种方法要求客户端开放不安全ActiveX控件的操作权限,考虑到通知每个客户将服务器设置为可信站点的麻烦程度建议还是用第一个方法比较省事。

删除方案由三部分组成:

A:

  同一用户生成的Excel文件用同一个文件名,文件名可用用户ID号或SessionID号等可确信不重复字符串组成。

这样新文件生成时自动覆盖上一文件。

B:

  在Global.asa文件中设置Session_onEnd事件激发时,删除这个用户的Excel暂存文件。

C:

  在Global.asa文件中设置Application_onStart事件激发时,删除暂存目录下的所有文件。

注:

建议目录结构\Src代码目录\Templet模板目录\Temp暂存目录

六、  附录

出错时Excel出现的死进程出现是一件很头疼的事情。

在每个文件前加上“OnErrorResumeNext”将有助于改善这种情况,因为它会不管文件是否产生错误都坚持执行到“Application.Quit”,保证每次程序执行完不留下死进程。

postedon2005-03-0817:

07爬行的E.T阅读(6)评论

(1) 编辑收藏

评论

#re:

ASP操作Excel技术总结  

这个程序一共由三个文件构成,第一个文件的文件名为:

toexcel.asp是主文件,内容如下:

<%

'前面是和来链接到数据库,请自行书写相关语句,此处略过

sql="select*from[tx_use]"'这里是要输出EXCEL的查询语句,如"SESECT*FORMCAIWHERE性别='女'"

filename="excel.xls"'要输出的EXCEL文件的文件名,你只要改以上两句就行了,其它的都不要改.

'你只要修改以上两变量就行了.其它的我都做好了.

calltoexcel(FILENAME,sql)

setconn=nothing

functionReadText(FileName)'这是一个用于读出文件的函数

setadf=server.CreateObject("Adodb.Stream")

withadf

.Type=2

.LineSeparator=10

.Open

.LoadFromFile(server.MapPath(FileName))

.Charset="GB2312"

.Position=2

ReadText=.ReadText

.Cancel()

.Close()

endwith

setads=nothing

endfunction

subSaveText(FileName,Data)'这是一个用于写文件的函数

setfs=createobject("scripting.filesystemobject")

setts=fs.createtextfile(server.MapPath(FileName),true)

ts.writeline(data)

ts.close

setts=nothing

setfs=nothing

endsub

subtoexcel(filename,sql)'这是一个根据SQL语句和FILENAME生成EXCEL文件

Setrs=Server.CreateObject("ADODB.RecordSet")

rs.Opensql,conn,1,3

TOEXCELLR=""

setmyfield=rs.fields

dimfieldname(50)

fori=0tomyfield.count-1

toexcellr=toexcellr&""&MYFIELD(I).NAME&""

fieldname(i)=myfield(i).name

ifmyfield(i).type=135thendatename=datename&myfield(i).name&","

next

toexcellr=toexcellr&""

dowhilenotrs.eof

toexcellr=toexcellr&""

fori=0tomyfield.count-1

ifinstr(datename,fieldname(i)&",")<>0then

ifnotisnull(rs(fieldname(i)))then

TOEXCELLR=TOEXCELLR&""&formatdatetime(rs(fieldname(i)),2)&"

"

else

TOEXCELLR=TOEXCELLR&" 

"

endif

else

TOEXCELLR=TOEXCELLR&""&rs(fieldname(i))&""

endif

next

toexcellr=toexcellr&""

rs.movenext

loop

toexcellr=toexcellr&""

tou=readtext("tou.txt")

di=readtext("di.txt")

toexcellr=tou&toexcellr&di

callsavetext(filename,toexcellr)

endsub

%>

">

正在生成EXLCE文件

正在生成EXLCE文件....

**************第二个文件名为:

di.txt内容如下:

strborder=0cellpadding=0cellspacing=0width=288style='border-collapse:

collapse;table-layout:

fixed;width:

216pt'>

[ifsupportMisalignedColumns]>

none'>

54pt'>

54pt'>

54pt'>

54pt'>

[endif]>

************第三个文件的文件名为:

tou.TXT 内容如下:

o="urn:

schemas-microsoft-com:

office:

office"

xmlns:

x="urn:

schemas-microsoft-com:

office:

excel"

xmlns="http:

//www.w3.org/TR/REC-html40">

--[ifgtemso9]>

xky

xky

2002-05-27T17:

51:

00Z

2002-06-22T10:

03:

03Z

zydn

9.2812

///E:

/msowc.cab"/>

[endif]-->

--[ifgtemso9]>

ExcelWorkbook>

ExcelWorksheets>

ExcelWorksheet>

Name>Sheet1

Name>

WorksheetOptions>

DefaultRowHeight>225

DefaultRowHeight>

Print>

ValidPrinterInfo/>

PaperSizeIndex>9

PaperSizeIndex>

HorizontalResolution>-3

HorizontalResolution>

VerticalResolution>0

VerticalResolution>

Print>

Selected/>

Panes>

Pane>

Number>3

Number>

ActiveRow>24

ActiveRow>

ActiveCol>5

ActiveCol>

Pane>

Panes>

ProtectContents>False

ProtectContents>

ProtectObjects>False

ProtectObjects>

ProtectScenarios>False

ProtectScenarios>

WorksheetOptions>

ExcelWorksheet>

ExcelWorksheet>

Name>Sheet2

Name>

WorksheetOptions>

DefaultRowHeight>225

DefaultRowHeight>

ProtectContents>False

ProtectContents>

ProtectObjects>False

ProtectObjects>

ProtectScenarios>False

ProtectScenarios>

WorksheetOptions>

ExcelWorksheet>

ExcelWorksheet>

Name>Sheet3

Name>

WorksheetOptions>

DefaultRowHeight>225

DefaultRowHeight>

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1