ASP操作Excel技术总结

原创 2004年08月22日 22:19:00

ASP操作Excel技术总结<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

目录

一、 环境配置

二、 ASPExcel的基本操作

三、 ASP操作Excel生成数据表

四、 ASP操作Excel生成Chart

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

六、 附录

正文

一、 环境配置

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

1Win9x+PWS+Office

2Win2000 Professional+PWS+Office

3Win2000 Server+IIS+Office

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

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

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

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

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

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

二、 ASPExcel的基本操作

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、   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 "-//W<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3C//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>

我在这儿再提供。将网页中表格,保存的方法。

例如:TABLE ID=MYTABLE

<!--生成EXCEL文件-->

sub btnExport_onclick()

dim objExcel

on error resume next

Set objExcel = CreateObject("excel.application")

   With objExcel

    .visible =true

    .workbooks.add

    .sheets("sheet1").select

    

   End with

   m_row="0"

      

    for a=0 to document.all.mytable.rows.length-1

    m_row = cstr(int (m_row)+1)

    for b=0 to document.all.mytable.rows(a).cells.length-1

    m_col = chr(asc("A")+b)

    objexcel.range(m_col&m_row).select

    M_value = document.all.mytable.rows(a).cells(b).innerText

      objexcel.activecell.value=cstr(m_value)

     next

    next

   objexcel.visible=true

   objexcel.range("A1").select

End sub

ASP操作Excel技术总结

目录  一、  环境配置  二、  ASP对Excel的基本操作  三、  ASP操作Excel生成数据表  四、  ASP操作Excel生成Chart图  五、  服务器端Excel文件浏览、下载、...
  • wvtjplh
  • wvtjplh
  • 2009-03-10 09:46:00
  • 239

ASP操作Excel技术总结

ASP操作Excel技术总结目录 一、  环境配置 二、  ASP对Excel的基本操作 三、  ASP操作Excel生成数据表 四、  ASP操作Excel生成Chart图 五、  服务器端Exce...
  • ytbada
  • ytbada
  • 2007-01-29 12:00:00
  • 745

ASP生成指定格式的EXCEl文件

  • baoyonwei
  • baoyonwei
  • 2011-03-25 10:33:00
  • 2902

用python进行excel操作的总结

版权声明:本文为博主原创文章,转载请注明出处:http://blog.csdn.net/nsy1994/article/details/793073811.利用xlrd、xlwt、xlutils这三个...
  • nsy1994
  • nsy1994
  • 2018-02-10 22:28:38
  • 92

asp操作excel文件

dim connxls,connstrxls connstrxls="DBQ=d:/newexcel.xls;DefaultDir=;DRIVER={Microsoft Excel Driver (*...
  • flynetcn
  • flynetcn
  • 2007-02-27 14:15:00
  • 1394

asp读取Excel文件

1.ASP对Excel的基本操作(1) 建立Excel对象 创建Excel对象可以通过下面的代码来实现:...
  • keringing
  • keringing
  • 2010-04-11 07:59:00
  • 1377

[技术转贴]ASP操作Excel技术总结

ASP操作Excel技术总结 ASP操作Excel技术总结目录一、 环境配置二、 ASP对Excel的基本操作三、 ASP操作Excel生成数据表四、 ASP操作Excel生成Chart图五、 服务器...
  • hubingbin
  • hubingbin
  • 2005-03-03 21:45:00
  • 717

ASP 操作ADO 读写Excel文件

为了把数据库中的数据导出Excel,在网上找了N多的资料有直接服务器中创建excel的,也有用owc生成的,还有javascript输出的,每种方法开始是以为不错最后经过调试和试用都发现了这样和那样的...
  • e_zhiwen
  • e_zhiwen
  • 2010-11-05 09:00:00
  • 3229

java操作Excel常用方法总结(POI)

java POI技术实现读写Excel操作,包含单个读写以及批量写入行和列
  • u010503127
  • u010503127
  • 2016-05-14 15:34:17
  • 444

java读写Excel三种常用的技术

读写Excel三种常用的技术 1.POI 2.JXL 3.FASTEXCEL POI Apache POI是Apache软件基金会的开放源代码函数库,POI提供API给java程...
  • qq_20545159
  • qq_20545159
  • 2015-04-19 20:10:24
  • 1887
收藏助手
不良信息举报
您举报文章:ASP操作Excel技术总结
举报原因:
原因补充:

(最多只允许输入30个字)