- 热门文章:
- · Raw Socket(原始套接字)实现Sniffer(嗅探)
- · 通用ShellCode深入剖析
- · SQL注入的新技巧
- · 数据连接错误信息
- · 服务器端包含的指令和使用程序
- · jscript错误代码及相应解释大全
- · vbscript错误代码及对应解释大全
- · 利用iis缺陷配置asp后门
- · 实现页面重定向
- · JavaScript 参考教程
- · php注入实例
- · 967 个函式
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”,保证每次程序执行完不留下死进程。
补充两点:
1、其他excel具体操作可以通过录制宏来解决。
2、服务器端打开sql企业管理器也会产生问题。
<%
on error resume next
straddr = server.mappath(".")
set objexcelapp = createobject("excel.application")
objexcelapp.displayalerts = false
objexcelapp.application.visible = false
objexcelapp.workbooks.open(straddr & "\templet\null.xls")
set objexcelbook = objexcelapp.activeworkbook
set objexcelsheets = objexcelbook.worksheets
set objexcelsheet = objexcelbook.sheets(1)
objexcelsheet.range("b2:k2").value = array("week1", "week2", "week3", "week4", "week5", "week6", "week7", "week8", "week9", "week10")
objexcelsheet.range("b3:k3").value = array("67", "87", "5", "9", "7", "45", "45", "54", "54", "10")
objexcelsheet.range("b4:k4").value = array("10", "10", "8", "27", "33", "37", "50", "54", "10", "10")
objexcelsheet.range("b5:k5").value = array("23", "3", "86", "64", "60", "18", "5", "1", "36", "80")
objexcelsheet.cells(3,1).value="internet explorer"
objexcelsheet.cells(4,1).value="netscape"
objexcelsheet.cells(5,1).value="other"
objexcelsheet.range("b2:k5").select
objexcelapp.charts.add
objexcelapp.activechart.charttype = 97
objexcelapp.activechart.barshape =3
objexcelapp.activechart.hastitle = true
objexcelapp.activechart.charttitle.text = "visitors log for each week shown in browsers percentage"
objexcelapp.activechart.setsourcedata objexcelsheet.range("a1:k5"),1
objexcelapp.activechart.location 1
objexcelapp.activechart.hasdatatable = true
objexcelapp.activechart.datatable.showlegendkey = true
objexcelbook.saveas straddr & "\temp\excel.xls"
objexcelapp.quit
set objexcelapp = nothing
%>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title> new document </title>
<meta name="generator" content="microsoft frontpage 5.0">
<meta name="author" content="">
<meta name="keywords" content="">
<meta name="description" content="">
</head>
<body>
</body>
</html>
()
- · 遍历目录以及目录下文件的函数
- · FileSystem对象常用的文件操作函数
- · apache主配置文件配置解说
- · Apache服务器配置技巧
- · 如何给phpadmin一个保护
- · 用正则解析图片地址
- · ASP+SQL Server之图象数据处理
- · 也谈如何缩小SQL SERVER日志文件
- · SQL Server 7.0数据库的六种数据移动方法
- · 网络数据库设计入门
- · SQL Server 2000企业版安装教程
- · 过滤用户输入 提高安全性
- · javascript表单事件汇总
- · 把图象文件转换成XML格式文件
- · SQL Injection中文猜测的两种方法
- · MYSQL初学者使用指南
- · Search Engine Friendly的URL设计
- · MySQL修改密码方法总结
- · JSP/Servlet 中的汉字编码问题
- · java新手上路
- · 创建SvcHost.exe调用的服务原理与实践创建SvcHost.exe调用的服务原理与实践
- · ASP网页模板的应用
- · 风格模板初级不完全修改教程
- · 使用ASP/VBS 调用Google Web APIs 开发自己的搜索引擎
- · 推荐一个web服务器
- · 用vbs来写sql注入等80端口的攻击脚本
- · SQL语句参考及记录集对象详解
- · Asp深度揭密
- · 如何对PHP程序中的常见漏洞进行攻击
- · 一个通用的保护ASP系统的方法
- · asp中正则表达式的应用
- · asp.net 1.1 安装手册
- · 改进 ASP 应用程序中的字符串处理性能
- · PHP安全配置
- · 让我的sql邮件工作
- · 还原数据库的经典做法
- · SQLSERVER备份和对日志的处理
- · 用汇编写系统服务程序
