如何用asp读取Excel文件.docx
《如何用asp读取Excel文件.docx》由会员分享,可在线阅读,更多相关《如何用asp读取Excel文件.docx(17页珍藏版)》请在冰豆网上搜索。
如何用asp读取Excel文件
1.ASP对Excel的基本操作
(1)建立Excel对象
创建Excel对象可以通过下面的代码来实现:
<%
setobjExcelApp=CreateObject("Excel.Application")
objExcelApp.DisplayAlerts=false '不显示警告
objExcelApp.Application =false '不显示界面
%>
(2)新建Excel文件
新建Excel文件可以通过以下代码来实现:
<%
objExcelApp.WorkBooks.add
setobjExcelBook =objExcelApp.ActiveWorkBook
setobjExcelSheets=objExcelBook.Worksheets
setobjExcelSheet =objExcelBook.Sheets
(1)
%>
(3)读取已有的Excel文件
读取已有的Excel文件可以通过下面的代码来实现
<%
strAddr=Server.MapPath(".")
objExcelApp.WorkBooks.Open(strAddr&"TempletTable.xls")
setobjExcelBook =objExcelApp.ActiveWorkBook
setobjExcelSheets=objExcelBook.Worksheets
setobjExcelSheet =objExcelBook.WorkSheets
(1)
%>
(4)另存Excel文件
另存Excel文件可以通过以下代码来实现
<%
objExcelBook.SaveAsstrAddr&"templateTables.xls"
%>
(5)保存Excel文件
保存Excel文件可以通过以下代码来实现:
<%
objExcelBook.Save
%>
(6)退出Excel操作
<%
objExcelApp.Quit '一定要退出
setobjExcelApp=nothing
%>
2读取Excel文件的实例
strsource=server.MapPath("xl.xls")
setxlbook=xlApp.WorkBooks.Open(strsource)
setxlsheet=xlbook.Worksheets
(1)
i=1
response.write"
"whilexlsheet.cells(i,1)<>""
response.write"
" response.write"
"&xlsheet.Cells(i,1)&" | " response.write"
"&xlsheet.Cells(i,2)&" | " response.write"
"&xlsheet.Cells(i,3)&" | " response.write"
" i=i+1
wend
response.write"
"
setxlsheet=nothing
setxlbook =nothing
xlApp.quit
'千万记住要加这一句,否则每运行一次你的机器里就增加一个Excel进程,而且无法释放
'setxlApp=nothing是不行的
%>
================================================================
3.怎样将数据从Excel导入到SQLServer中
'定义
dimmyConnection
dimstrName
dimrsXsl,rsSql
dimmyConn_Xsl
dimcmd
dimi,j
dimmaxId
strName=strFileName
setmyConnection=Server.CreateObject("ADODB.Connection")
setrsXsl=Server.CreateObject("ADODB.Recordset")
setrsSql=Server.CreateObject("ADODB.Recordset")
setcmd =server.CreateObject("ADODB.Command")
cmd.ActiveConnection=myConn
myConn_Xsl="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&strName&_
";ExtendedProperties=Excel8.0"
'打开连接
myconnection.openmyConn_Xsl
'打开表
str_Xsl="select*from["&strSheetName&"$]"
rsXsl.openstr_Xsl,myconnection,1,1
j=1
DowhilenotrsXsl.eof
'取出最大值
str_sql="selectMax(id)asmaxIdfromexceltosql"
rsSql.openstr_Sql,myConn,1,3
ifNotrsSql.eofthen
ifnotisNull(rsSql("maxId"))then
maxId=CLng(rsSql("maxId"))+1
else
maxId=1
endif
else
maxId=1
endif
rsSql.close '//关闭对象
'加入数据库
str_Sql="insertintoexceltosqlvalues("&maxId&",'"&rsXsl
(1)&"','"&rsXsl
(2)&"')"
cmd.CommandText=str_Sql
cmd.Excute()
''''''''''''''''''''''''''''''''''''''''''
j=j+1
rsXsl.moveNext
loop
response.write"共导入"&j_1&"条记录.
"
response.write"关闭窗口"
setrsXsl=nothing
setrsSql=nothing
setmyconnection=nothing
setcmd=nothing
endsub
(2)
'调用方法
<%
file1="c:
excelexample.xls"
myconn="DRIVER={SQLSERVER};SERVER=(local);uid=sa;pwd=sa;DATABASE=aspbook"
dataIntoSqlServer_ceritificatefile1,"sheet1",myconn
%>
========================================================
4.ASP操作Excel技术总结
目录
一、 环境配置
二、 ASP对Excel的基本操作
三、 ASP操作Excel生成数据表
四、 ASP操作Excel生成Chart图
五、 服务器端Excel文件浏览、下载、删除方案
六、 附录
正文
一、 环境配置
服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即:
1.Win9x+PWS+Office
2.Win2000 Professional+PWS+Office
3.Win2000 Server+IIS+Office
目前笔者测试成功的环境是后二者。
★点击设计★www.djasp.Net
专业的网页编程资讯站点,欢迎访问!
此信息随机生成,防止无聊之人盗用点击设计站点上的资源,请关闭该网站然后访问点击设计官方网址:
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 & "TempletTable.xls")
set objExcelBook = objExcelApp.ActiveWorkBook
set objExcelSheets = objExcelBook.Worksheets
set objExcelSheet = objExcelBook.Sheets
(1)
4、 另存Excel文件
objExcelBook.SaveAs strAddr & "TempTable.xls"
5、 保存Excel文件
objExcelBook.Save (笔者测试时保存成功,页面报错。
此内容系随机生成,谢绝站长们转转,您查看的内容来自★点击设计★www.djasp.Net
点击设计,专业的网页编程资讯站点,欢迎访问!
请记好点击设计的域名:
www.djasp.Net如果您正在浏览此内容,请关闭此网页,然后访问点击设计的官方网址:
)
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”,保证每次程序执行完不留下死进程。
5.ASP读EXCEL2000的文章!
!
'i)将Excel97或Excel2000生成的XLS文件(book)看成一个数据库,其中的每一个工作表(sheet)看成数据库表
'ii)ADO假设Excel中的第一行为字段名.所以你定义的范围中必须要包括第一行的内容
'iii)Excel中的行标题(即字段名)不能够包含数字.Excel的驱动在遇到这种问题时就会出错的。
例如你的行标题名为“F1”
'iiii)如果你的Excel电子表格中某一列同时包含了文本和数字的话,那么Excel的ODBC驱动将不能够正常,处理这一行的数据类型,你必须要保证该列的数据类型一致
DimConn,Driver,DBPath,Rs
'建立Connection对象
SetConn=Server.CreateObject("ADODB.Connection")
Driver="Driver={MicrosoftExcelDriver(*.xls)};"
DBPath="DBQ="&Server.MapPath("test.xls")
'调用Open方法打开数据库
Conn.OpenDriver&DBPath
'DSN连接方式
'Conn.Open"Dsn=test"
'注意表名一定要以下边这种格试"[表名$]"书写
Sql="Select*From[Sheet1$]where序号=0"
SetRs=Conn.Execute(Sql)
IFRs.EofAndRs.BofThen
Response.write"没有找到您需要的数据!
!
"
Else
DoWhileNotRs.EOF
Response.writeRs("姓名")
Rs.MoveNext
Loop
EndIF
Rs.Close
SetRs=nothing
Conn.Close
SetConn=Nothing
'Response.Write"成功!
"
%>
========================================================
6.ASP与电子表格EXCEL的交互操作
HerewegoagainwithanothersampleforExcel,thistimewewillbeusingASPtocreateachart.Youall
askedmeforit,nowhereisthesolution.Thanksagainforallyournicecomments:
)
Firstwesetthetypeofscript
<%@LANGUAGE="VBSCRIPT"%>
Maketheobject,andsettheobjecttoanExcelsheet
DimMyExcelChart
SetMyExcelChart=CreateObject("Excel.Sheet")
Nowletswritetherestofthescript,seethecomments
'showordontshowexceltouser,TRUEorFALSE
MyExcelChart.Application.Visible=True
'populatethecells
MyExcelChart.ActiveSheet.Range("B2:
k2").Value=Array
("Week1","Week2","Week3","Week4","Week5","Week6","Week7","Week8","Week9","Week10")
MyExcelChart.ActiveSheet.Range("B3:
k3").Value=Array
("67","87","5","9","7","45","45","54","54","10")
MyExcelChart.ActiveSheet.Range("B4:
k4").Value=Array
("10","10","8","27","33","37","50","54","10","10")
MyExcelChart.ActiveSheet.Range("B5:
k5").Value=Array
("23","3","86","64","60","18","5","1","36","80")
MyExcelChart.ActiveSheet.Cells(3,1)