| 導購 | 订阅 | 在线投稿
分享
 
 
 

ASP操作Excel技术总结

2008-08-27 06:58:26  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  目录

  一、 环境配置

  二、 ASP对Excel的基本操作

  三、 ASP操作Excel生成数据表

  四、 ASP操作Excel生成Chart图

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

  六、 附录

  正文

  一、 环境配置

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

  1.Win9x+PWS+Office

  2.Win2000 Professional+PWS+Office

  3.Win2000 Server+IIS+Office

  目前笔者测试成功的环境是后二者。Office的版本没有特殊要求,考虑到客户机配置的不确定性和下兼容特性,建议服务器端Office版本不要太高,以防止客户机下载后无法正确显示。

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

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

  2. 笔者开发ASP代码喜欢用FrontPage,结果发现如果FrontPage打开(服务器端),对象创建出现不稳定现象,时而成功时而不成功。扩展考察后发现,Office系列的软件如果在服务器端运行,则Excel对象的创建很难成功。

  服务器端还必须要设置的一点是COM组件的操作权限。在命令行键入“DCOMCNFG”,则进入COM组件配置界面,选择Microsoft Excel后点击属性按钮,将三个单选项一律选择自定义,编辑中将Everyone加入所有权限。保存完毕后重新启动服务器。

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

  二、 ASP对Excel的基本操作

  1、 建立Excel对象

  set objExcelApp = CreateObject("Excel.Application")

  objExcelApp.DisplayAlerts = false 不显示警告

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

  2、 新建Excel文件

  objExcelApp.WorkBooks.add

  set objExcelBook = objExcelApp.ActiveWorkBook

  set objExcelSheets = objExcelBook.Worksheets

  set objExcelSheet = objExcelBook.Sheets(1)

  3、 读取已有Excel文件

  strAddr = Server.MapPath(".")

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

  set objExcelBook = objExcelApp.ActiveWorkBook

  set objExcelSheets = objExcelBook.Worksheets

  set objExcelSheet = objExcelBook.Sheets(1)

  4、 另存Excel文件

  objExcelBook.SaveAs strAddr & "\Temp\Table.xls"

  5、 保存Excel文件

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

  6、 退出Excel操作

  objExcelApp.Quit 一定要退出

  set objExcelApp = 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="Internet Explorer"

  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 = "A test Chart"

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

  objExcelApp.ActiveChart.SetSourceData objExcelSheet.Range("A1:k5"),1

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

  objExcelApp.ActiveChart.SeriesCollection.NewSeries

  objExcelApp.ActiveChart.SeriesCollection(1).Name = "=""333"""

  objExcelApp.ActiveChart.SeriesCollection(1).Values = "={1,4,5,6,2}"

  6、 绑定Chart图

  objExcelApp.ActiveChart.Location 1

  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出现的死进程出现是一件很头疼的事情。在每个文件前加上“On Error Resume Next”将有助于改善这种情况,因为它会不管文件是否产生错误都坚持执行到“Application.Quit”,保证每次程序执行完不留下死进程。
 
 
 
目录 一、 环境配置 二、 ASP对Excel的基本操作 三、 ASP操作Excel生成数据表 四、 ASP操作Excel生成Chart图 五、 服务器端Excel文件浏览、下载、删除方案 六、 附录 正文 一、 环境配置 服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即: 1.Win9x+PWS+Office 2.Win2000 Professional+PWS+Office 3.Win2000 Server+IIS+Office 目前笔者测试成功的环境是后二者。Office的版本没有特殊要求,考虑到客户机配置的不确定性和下兼容特性,建议服务器端Office版本不要太高,以防止客户机下载后无法正确显示。 服务器端环境配置还有两个偶然的发现是: 1. 笔者开发机器上原来装有金山的WPS2002,结果Excel对象创建始终出现问题,卸载WPS2002后,错误消失。 2. 笔者开发ASP代码喜欢用FrontPage,结果发现如果FrontPage打开(服务器端),对象创建出现不稳定现象,时而成功时而不成功。扩展考察后发现,Office系列的软件如果在服务器端运行,则Excel对象的创建很难成功。 服务器端还必须要设置的一点是COM组件的操作权限。在命令行键入“DCOMCNFG”,则进入COM组件配置界面,选择Microsoft Excel后点击属性按钮,将三个单选项一律选择自定义,编辑中将Everyone加入所有权限。保存完毕后重新启动服务器。 客户端的环境配置没发现什么特别讲究的地方,只要装有Office和IE即可,版本通用的好象都可以。 二、 ASP对Excel的基本操作 1、 建立Excel对象 set objExcelApp = CreateObject("Excel.Application") objExcelApp.DisplayAlerts = false 不显示警告 objExcelApp.Application.Visible = false 不显示界面 2、 新建Excel文件 objExcelApp.WorkBooks.add set objExcelBook = objExcelApp.ActiveWorkBook set objExcelSheets = objExcelBook.Worksheets set objExcelSheet = objExcelBook.Sheets(1) 3、 读取已有Excel文件 strAddr = Server.MapPath(".") objExcelApp.WorkBooks.Open(strAddr & "\Templet\Table.xls") set objExcelBook = objExcelApp.ActiveWorkBook set objExcelSheets = objExcelBook.Worksheets set objExcelSheet = objExcelBook.Sheets(1) 4、 另存Excel文件 objExcelBook.SaveAs strAddr & "\Temp\Table.xls" 5、 保存Excel文件 objExcelBook.Save (笔者测试时保存成功,页面报错。) 6、 退出Excel操作 objExcelApp.Quit 一定要退出 set objExcelApp = 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="Internet Explorer" 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 = "A test Chart" 4、 通过表格数据设定图形 objExcelApp.ActiveChart.SetSourceData objExcelSheet.Range("A1:k5"),1 5、 直接设定图形数据(推荐) objExcelApp.ActiveChart.SeriesCollection.NewSeries objExcelApp.ActiveChart.SeriesCollection(1).Name = "=""333""" objExcelApp.ActiveChart.SeriesCollection(1).Values = "={1,4,5,6,2}" 6、 绑定Chart图 objExcelApp.ActiveChart.Location 1 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出现的死进程出现是一件很头疼的事情。在每个文件前加上“On Error Resume Next”将有助于改善这种情况,因为它会不管文件是否产生错误都坚持执行到“Application.Quit”,保证每次程序执行完不留下死进程。
󰈣󰈤
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号 wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味著赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有