日期:2014-03-04  浏览次数:20984 次

ASP操作Excel技术总结
  
  目录
  一、 环境配置
  二、 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”都可以实现,建议用客