热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

ASP操作Excel技术总结

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”都可以实现,建议用客户端的方法,原因是给服务器更多的时间生成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”,保证每次程序执行完不留下死进程。


推荐阅读
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • JavaScript 跨域解决方案详解
    本文详细介绍了JavaScript在不同域之间进行数据传输或通信的技术,包括使用JSONP、修改document.domain、利用window.name以及HTML5的postMessage方法等跨域解决方案。 ... [详细]
  • 搭建个人博客:WordPress安装详解
    计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • 解决Win10 1709版本文件共享安全警告问题
    每当Windows 10发布新版本时,由于兼容性问题往往会出现各种故障。近期,一些用户在升级至1709版本后遇到了无法访问共享文件夹的问题,系统提示‘文件共享不安全,无法连接’。本文将提供多种解决方案,帮助您轻松解决这一难题。 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
  • 本文详细介绍了如何在Mac操作系统中为IntelliJ IDEA配置更高的内存限制,以提高开发效率和性能。 ... [详细]
  • CISSP 第8章 软件开发安全概述与实践
    本文探讨了软件开发中的安全问题,包括但不限于满足功能需求与安全性之间的平衡、SDLC(软件开发生命周期)中安全的重要性、OWASP的最佳实践、不同的开发模型、能力成熟度模型、变更控制流程、软件托管服务以及不同代际的编程语言等。此外,还涉及了Web环境下的特定威胁、多层次的攻击防御、数据仓库与数据挖掘技术及其应用模型、恶意软件的识别与防范措施等内容。 ... [详细]
  • 黑客组织NB65公开泄露俄罗斯实体信息
    近日,黑客组织NB65宣布泄露了一系列与俄罗斯相关的实体数据,引起广泛关注。 ... [详细]
  • Uniswap 与 MoonPay 合作,引入法币交易功能。本文探讨这一合作对用户进入加密货币领域的安全性及便利性的影响。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
author-avatar
曾wujcik_663
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有