ASP直接调用EXCEL数据
在ASP-NET中读写Excel文件有四种解决方案
在ASP-NET中读写Excel文件有四种解决方案在中读写Excel文件有四种解决方案在应用程序常常会遇到需要从Excel 文件中读取数据或将数据写入Excel的需求。
一般来讲,在中读写Excel文件有四种解决方案。
1.1.1 使用OLE DB使用OLE DB可以以查询数据库的方式来读取Excel文件,因为在某种程度上Excel表格可以看成是一张一张的数据表。
其二者的主要区别在于所使用的数据引擎不一样。
使用OLE DB访问Excel的要点是计算机上必须具有Microsoft Access Data Component 2.6(MADC2.6)以上版本,同时在连接字符串上必须声明“Extended Properties=Excel 8.0”,这里的指定Excel 版本号如果高于8.0可能会出错,所以一般来讲必须使用Excel 8.0。
然后其它的写法就和一般的访问数据库一样了,打开连接,填充数据集,再关闭连接即可。
例如下面的实现代码://创建一个数据链接string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =c:\\sample.xls;Extended Properties=Excel 8.0" ; OleDbConnection myConn = new OleDbConnection ( strCon ) ;string strCom = " SELECT * FROM [Sheet1$] " ;myConn.Open ( ) ;//打开数据链接,得到一个数据集OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;//创建一个DataSet对象myDataSet = new DataSet ( ) ;//得到自己的DataSet对象myCommand.Fill ( myDataSet , "[Sheet1$]" ) ; //关闭此数据链接myConn.Close ( ) ;代码7-1使用这种解决方案的优点是不需要其他的服务器组件,部署非常方便,但是其缺点也是明显的,用它来读取Excel 2003格式以上的文件会存在数据丢失的情况,而且也无法生成Excel文件。
ASP操作EXCEL文件
ASP操作EXCEL文件最近实战ASP操作excel文件.在网上收集了一番资料. 以前找过一篇教程,是将excel文件作为一个数据库进行链接,然后的操作和对access数据库操作类似.但是这种方式对于我现在需要的方式,操作比较麻烦,甚至不能完成,所以作罢.对于一个固定格式,这个格式里有复杂的单元格合并,边框线条样式,还有图案,单元格之间还有公式关系等等的,我想最容易理解的就是在后台打开一个已有设定好模板的文件,然后在需要的地方插入数据,保存,输出... ...最后由关键字"ASP 操作excel"在google搜到在BLUEIDEA的教程(同时有很多网址有相同内容的教程,但是我相信还是blueidea是最早原创的)这种方法是直接建立一个excel对象,在后台可以更方便的对excel文档进行各种操作.文中一段服务器端还必须要设置的一点是COM组件的操作权限。
在命令行键入“DCOMCNFG”,则进入COM组件配置界面,选择MicrosoftExcel后点击属性按钮,将三个单选项一律选择自定义,编辑中将Everyone 加入所有权限。
保存完毕后重新启动服务器。
很重要.不设置的话,别的电脑将无法完成excel对象的建立.但是这种方法也有一个缺憾,在我实际操作中,如果服务器上已有打开的excel文件,再执行同一文件,就会出错.暂时还搞不明白为何.可能还有一些地方没设置好吧.另外,上面引用的文章中实例代码格式不太完整,其中很多换行和空格格式不准确,如果代码完整,只要复制代码,就可以运行成功,然后再慢慢进行研究修改,就很容易上手了.现把修改后的代码如下(删去了其中画图表的部分):程序代码:<%On Error Resume NextstrAddr=Server.MapPath(".")set objExcelApp=CreateObject("Excel.Application") objExcelApp.DisplayAlerts=falseset objExcelBook=objExcelApp.ActiveWorkBookset objExcelSheets=objExcelBook.WorksheetssetobjExcelSheet=objExcelBook.Sheets(1)objExcelSheet.Ra nge("B2:k2").Value=Array("Week1","Week2","Week3","We ek4","Week5","Week6","Week7")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="InternetExplorer" objExcelSheet.Cells(4,1).Value="Netscape" objExcelSheet.Cells(5,1).Value="Other" objExcelSheet.Range("b2:k5").SelectSaveAs(strAddr&"\T emp\Excel.xls")objExcelApp.Quitset objExcelApp=Nothing%>NewDocument至此,对于我的需求基本满足了.实际操作中还有一些小问题,慢慢再解决.其实在msdn上有很详细的office各类的对象的说明,之前因为急功近利,只想找最现成的实例,但是查看一下msdn,很多问题突然就明白了呵呵[Edit on 2006-7-3 23:07:40 By 猪飞飞]发表:猪飞飞| 时间:2006-7-3 23:03:40 | 评论[1] | 点击[1033]≡≡≡≡≡ 网友评论操作完excel文件需要将文件进行输出,实际弄一下,用ASP 的redirect到excel方法,有时候是在IE中直接打开,有时候是弹出"下载打开保存"窗口.如果需要直接在IE中打开,不放用FSO载入excel文件,然后在IE中输出.搜了一段代码,没有验证过,但是理论上这样是可行的:程序代码:<% Dim Fso,FileExt,strFilePath,MimestrFilePath = "f:\sifang\qyoa\国贸手抄.doc"SetFso=Server.CreateObject("Scripting.FileSystemObject" FileExt = Fso.GetExtensionName(strFilePath)Set fso=Nothing Select Case FileExtCase "doc"Mime="Application/msword"Case "xls"Mime="Application/msexcel"End Select Call OutPut(strFilePath,Mime)‘############################################## ########Function OutPut(strFilePath,Mime)Response.ContentType = MimeConst adTypeBinary = 1Set objStream = Server.CreateObject("ADODB.Stream" objStream.OpenobjStream.Type = adTypeBinaryobjStream.LoadFromFile strFilePathResponse.BinaryWrite objStream.ReadobjStream.CloseSet objStream = NothingEnd Function。
探索服务器端Excel数据处理:ASP与ADODB的协同
探索服务器端Excel数据处理:ASP与ADODB的协同《探索服务器端Excel数据处理:ASP与ADODB的协同》在当今数字化时代,数据的处理和分析变得尤为重要。
尤其是在服务器端,处理Excel文件成为了一项常见且关键的任务。
本文将深入探讨如何使用ASP(Active Server Pages)和ADODB(ActiveX Data Objects)技术来处理上传的Excel文件,实现数据的有效管理和操作。
一、ASP与ADODB:服务器端数据处理的基石ASP作为一种服务器端脚本环境,能够与数据库进行交互,处理客户端请求,生成动态网页。
而ADODB则提供了一种与数据源进行交互的途径,使得在服务器端处理数据成为可能。
二、Excel文件的服务器端读取在服务器端读取Excel文件,首先需要确保文件的路径正确,然后通过ADODB连接对象建立与Excel文件的连接。
使用特定的连接字符串,可以指定Excel文件作为数据源,并设置相应的属性以适应不同的Excel版本。
三、数据的提取与处理一旦连接建立,就可以使用ASP脚本执行SQL查询,从Excel文件中提取数据。
通过遍历结果集,可以逐行读取数据,为进一步的处理和分析做准备。
四、数据的插入与数据库操作获取数据后,常见的操作是将这些数据插入到数据库中。
通过构建合适的SQL语句,可以将Excel中的数据导入到数据库表中,实现数据的持久化存储。
五、性能优化与错误处理在处理Excel文件时,性能优化和错误处理是不可忽视的环节。
合理的资源管理和错误捕捉机制,能够确保数据处理的稳定性和可靠性。
六、结语:ASP与ADODB的协同优势通过ASP和ADODB的协同工作,服务器端的Excel数据处理变得高效且灵活。
这种技术组合不仅提高了数据处理的自动化水平,还为数据驱动的Web应用提供了强大的支持。
asp操作Excel类_
asp操作Excel类_asp操作Excel类:%'************************************************** *****************'用法说明'Dim a'Set a=new CreateExcel'a.SavePath="x" '保存路径'a.SheetName="工作簿名称" '多个工作表a.SheetName=array("工作簿名称一","工作簿名称二")'a.SheetTitle="表名称" '可以为空多个工作表a.SheetName=array("表名称一","表名称二")'a.Data =d '二维数组 '多个工作表 array(b,c) b与c 为二维数组'Dim rs'Set rs=server.CreateObject("Adodb.RecordSet")'rs.open "Select id, classid, className from [class] ",conn, 1, 1'a.AddDBData rs, "字段名一,字段名二", "工作簿名称", "表名称", true 'true自动猎取表字段名'a.AddData c, true , "工作簿名称", "表名称" 'c二维数组 true 第一行是否为标题行'a.AddtData e, "Sheet1" '按模板生成c=array(array("AA1", "内容"), array("AA2", "内容2")) 'a.Create()'edTime 生成时间,毫秒数'a.SavePath 保存路径'Set a=nothing'设置COM组件的操作权限。
如何把一个Excel文件放到ASP页面中去?
如何把一个Excel文件放到ASP页面中去?很简单,只需建立一个worksheet和Excel相关的信息就可以了,具体代码见下:<%set xlApp = Server.CreateObject("Excel.Application")xlApp.Visible = false' 使服务端不出现Excel窗口set myWorkbook = xlApp.Workbooks.Add' 建立一个worksheetset myWorksheet = myWorkbook.Worksheets(1)myWorksheet.Range("A1").Value = '精彩春风通讯录'myWorksheet.Range("A1").Font.Size = 12myWorksheet.Range("A1").Font.Bold = truemyWorksheet.Range("A2").Value = '姓名'myWorksheet.Range("B2").Value = '地址'myWorksheet.Range("C2").Value = '电话'myWorksheet.Range("D2").Value = '手机'' 以上7行建立表头myWorksheet.Range("A2:D2").Font.Bold = truestrFileName = Session.SessionID & ".xls"' 确保文件名唯一strAppPath = Request.ServerVariables("PA TH_TRANSLATED")strAppPath = Left(strAppPath, InstrRev(strAppPath, "\"))strFullPath = strAppPath & strFileNamemyWorkbook.SaveAs(strFullPath)' 保存文件myWorkbook.Close' 关闭ExcelxlApp.Quitset myWorksheet = Nothingset myWorkbook = Nothingset myxlApp = NothingResponse.Redirect strFileName' 写到ASP页面,即浏览器中%>。
asp导航excel数据到mssqlaccessmysql等数据方法
asp导航excel数据到mssqlaccessmysql等数据方法下面是一段简单的由asp导入excel数据保存到其它的数据如有mssql access mysql 等哦好了费话不说多了来看看下面的代码吧<! #include file="adoconn asp" > <% Set xlsconn = server CreateObject("adodb connection") set rs=server CreateObject("adodb recordset")source =server mappath(" ")&""&replace(request("path") "/" "") myConn_Xsl="Provider=Microsoft Jet OLEDB ;Data Source=" &source & ";Extended Properties=Excel " xlsconn open myConn_Xslsql="select * from [商品列表$]" set rs=xlsconn execute(sql) if not rs eof then while not rs eof names=rs("商品名") pic=rs("图片")sql="insert into [product](namese pic) values( "& names &" "& pic &" )" conn execute(sql)rs movenext wendend if response write "导入成功" end if %>数据连接文件<! #include file="adoconn asp" >lishixinzhi/Article/program/net/201311/14100。
如何用asp读取Excel文件(比较全面)
如何用asp读取Excel文件(比较全面)1.ASP对Excel的基本操作(1) 建立Excel对象创建Excel对象可以通过下面的代码来实现:<%set objExcelApp = CreateObject("Excel.Application") objExcelApp.DisplayAlerts = false '不显示警告objExcelApp.Application = false '不显示界面%>(2) 新建Excel文件新建Excel文件可以通过以下代码来实现:<%objExcelApp.WorkBooks.addset objExcelBook = objExcelApp.ActiveWorkBookset objExcelSheets = objExcelBook.Worksheetsset objExcelSheet = objExcelBook.Sheets(1)%>(3) 读取已有的Excel文件读取已有的Excel文件可以通过下面的代码来实现<%strAddr = Server.MapPath(".")objExcelApp.WorkBooks.Open(strAddr & "TempletTable.xls") set objExcelBook = objExcelApp.ActiveWorkBookset objExcelSheets = objExcelBook.Worksheetsset objExcelSheet = objExcelBook.WorkSheets(1)%>(4) 另存Excel文件另存Excel文件可以通过以下代码来实现<%objExcelBook.SaveAs strAddr & "templateTables.xls" %>(5) 保存Excel文件保存Excel文件可以通过以下代码来实现:<%objExcelBook.Save%>(6) 退出Excel操作<%objExcelApp.Quit '一定要退出set objExcelApp = nothing%>2 读取Excel文件的实例<%set xlApp = server.CreateObject("Excel.Application") strsource = server.MapPath("xl.xls")set xlbook = xlApp.WorkBooks.Open(strsource)set xlsheet = xlbook.Worksheets(1)i = 1response.write "<table>"while xlsheet.cells(i,1) <> ""response.write "<tr>"response.write "<td>" & xlsheet.Cells(i,1) & "</td>" response.write "<td>" & xlsheet.Cells(i,2) & "</td>" response.write "<td>" & xlsheet.Cells(i,3) & "</td>" response.write "<tr>"i = i + 1wendresponse.write "</table>"set xlsheet = nothingset xlbook = nothingxlApp.quit'千万记住要加这一句,否则每运行一次你的机器里就增加一个Excel进程,而且无法释放'set xlApp = nothing 是不行的%>====================================== ==========================3.怎样将数据从Excel导入到SQL Server中(1)<%subdataIntoSqlServer_ceritificate(strFileName,strSheetName,myCon n)'定义dim myConnectiondim strNamedim rsXsl,rsSqldim myConn_Xsldim cmddim i,jdim maxIdstrName = strFileNameset myConnection =Server.CreateObject("ADODB.Connection")set rsXsl = Server.CreateObject("ADODB.Recordset")set rsSql = Server.CreateObject("ADODB.Recordset")set cmd = server.CreateObject("mand")cmd.ActiveConnection = myConnmyConn_Xsl = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strName & _";Extended Properties=Excel 8.0"'打开连接myconnection.open myConn_Xsl'打开表str_Xsl = "select * from [" & strSheetName & "$]"rsXsl.open str_Xsl,myconnection,1,1j = 1Do while not rsXsl.eof'取出最大值str_sql = "select Max(id) as maxId from exceltosql"rsSql.open str_Sql,myConn,1,3if Not rsSql.eof thenif not isNull(rsSql("maxId")) thenmaxId=CLng(rsSql("maxId")) + 1elsemaxId = 1end ifelsemaxId = 1end ifrsSql.close '//关闭对象'加入数据库str_Sql = "insert into exceltosql values(" & maxId&",'"&rsXsl(1)&"','" & rsXsl(2)&"')"mandText = str_Sqlcmd.Excute()''''''''''''''''''''''''''''''''''''''''''j = j + 1rsXsl.moveNextloopresponse.write "共导入 " & j_1 & " 条记录.<br>"response.write "<a href=# onclick='self.close();'>关闭窗口</a>"set rsXsl = nothingset rsSql = nothingset myconnection = nothingset cmd = nothingend sub(2)'调用方法<%file1 = "c:\excelexample.xls"myconn = "DRIVER={SQL SERVER};SERVER=(local);uid=sa;pwd=sa;DATABASE=aspbook"dataIntoSqlServer_ceritificate file1,"sheet1",myconn%>====================================== =======================================4.ASP操作Excel技术总结目录一、环境配置二、 ASP对Excel的基本操作三、 ASP操作Excel生成数据表四、 ASP操作Excel生成Chart图五、服务器端Excel文件浏览、下载、删除方案六、附录正文一、环境配置服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即:1.Win9x+PWS+Office2.Win2000 Professional+PWS+Office3.Win2000 Server+IIS+Office目前笔者测试成功的环境是后二者。
asp读取excel代码(举了四个excel不同实例应用)
en isarray(exceldata) then
inerr("表数据载入有误")
dim beginrow : beginrow = 1
public property let sheetname(byval val)
if not isarray(val) then
if val = "" then
inerr("表名设置有误")
end if
end property
rem 检查数据
private sub checkdata()
if savepath_ = "" then inerr("保存路径不能为空")
if not isarray(sheetname_) then
end function
private sub createsheets(byval data_, dataid_)
dim spreadsheet
dim tempsheettitle
dim temptitlefirstline
else
set spreadsheet = excelbook.sheets(1)
= sheetname_
tempsheettitle = sheettitle_
temptitlefirstline = titlefirstline
else
tempsheettitle = ""
Asp连接读取excel内容并导入到数据库
Asp连接读取excel内容并导入到数据库asp连接excelSet connnew = Server.CreateObject("ADODB.Connection")'hdr取值yes,no ,表示第一行是否为字段名connStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath(“test.xls”)&";Extended Properties='Excel 8.0;HDR=No;IMEX=1';"connnew.open connstrSet rsnew=Server.CreateObject("ADODB.Recordset")'Sheet1为excel里面的表名,表名后面一定要加$sqlnew = "select * from [Sheet1$]"rsnew.open sqlnew,connnew,1,1'rows是读取的excel里面数据的行数rows=rsnew.recordcount'cells是读取excel里面数据的列数cells=rsnew.Fields.Count输出记录集rsnew里面的数据,规则是这样的:如果HDR赋值是No的话rsnew(0)输出的是excel里第一行第一列的内容如果HDR赋值是Yes的话rsnew(0)输出的是excel里第二行第一列的内容如果想输出第二行的内容,只需在语句前加rsnew.movenext输出就这么简单的完成了!连接网站数据库,相信各位程序猿都已经会了。
要做的就是用sql语句判断要导入的数据是否存在,存在用update修改一下。
不存在的话addnew重新插入一条即可。
如果想要实现上传excel后导入的话,可以加上一个上传程序,将上传后的excel 路径传输到asp连接excel的字符串里面。
用ASP访问excel中的数据
用ASP访问excel中的数据1、建立一个链接文件名为conn。
<%db="D:\标件.xlsx" '用的是数据实际路径哈’set conn =server.CreateObject("adodb.connection")connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & db + "';Extended Properties='Excel 12.0;HDR=YES;IMEX=1';"conn.open connstr ’打开excel%>2、查询excel表格中的内容。
<%sqlstr="select * from [标件2010年$] order by 序列desc" ‘查询语句set rs =server.CreateObject("adodb.recordset")rs.open sqlstr,conn,0,1rs.movefirstdo while not rs.eof %><tr><td width='50' height='20'><%response.write(rs("序列"))%></td><td width='70' height='20'><%response.write(rs("标准"))%></td><td width='100' height='20'><%response.write(rs("名称"))%></td><td width='60' height='20'><%response.write(rs("材质"))%></td><td width='120' height='20'><%response.write(rs("规格型号"))%></td><td width="60" height="20"><%response.write(rs("单位"))%></td><td width="120" height="20"><%response.write(rs("入库数量"))%></td><td width="50" height="20"><%response.write(rs("入库时间"))%></td><td width="80" height="20"><%response.write(rs("出库数量"))%></td><td width="80" height="20"><%response.write(rs("出库时间"))%></td><td width="80" height="20"><%response.write(rs("领用人"))%></td><td width="70" height="20"><%response.write(rs("合同号"))%></td><td width="80" height="20"><%response.write(rs("库存数量"))%></td><td width="60" height="20"><%response.write(rs("备注"))%></td></tr><%rs.movenextloopresponse.Write"</table>"conn.close%>。
asp.net读取excel文件的三种方法示例
读取excel⽂件的三种⽅法⽰例把Excel⽂件当做⼀个数据源来进⾏数据的读取操作,实例如下:复制代码代码如下:public DataSet ExcelToDS(string Path){string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"; OleDbConnection conn = new OleDbConnection(strConn);conn.Open();string strExcel = "";OleDbDataAdapter myCommand = null;DataSet ds = null;strExcel="select * from [sheet1$]";myCommand = new OleDbDataAdapter(strExcel, strConn);ds = new DataSet();myCommand.Fill(ds,"table1");return ds;}对于Excel中的表即sheet([sheet1$])如果不是固定的可以使⽤下⾯的⽅法得到复制代码代码如下:string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"; OleDbConnection conn = new OleDbConnection(strConn);DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null); string tableName=schemaTable.Rows[0][2].ToString().Trim();另外:也可进⾏写⼊Excel⽂件,实例如下:复制代码代码如下:public void DSToExcel(string Path,DataSet oldds){//先得到汇总Excel的DataSet 主要⽬的是获得Excel在DataSet中的结构string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source ="+path1+";Extended Properties=Excel 8.0" ; OleDbConnection myConn = new OleDbConnection(strCon) ;string strCom="select * from [Sheet1$]";myConn.Open ( ) ;OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom, myConn ) ;system.Data.OleDb.OleDbCommandBuilder builder=new OleDbCommandBuilder(myCommand);//QuotePrefix和QuoteSuffix主要是对builder⽣成InsertComment命令时使⽤。
ASP.NET(C#)读取Excel的文件内容
复制代码 代码如下:
//声明变量(属性) string currFilePath = string.Empty; //待读取文件的全路径 string currFileExtension = string.Empty; //文件的扩展名
//Page_Load事件 注册按钮单击事件 protected void Page_ad(object sender,EventArgs e) {
} }
///<summary> ///读取csv格式的Excel文件的方法 ///</ummary> ///<param name="path">待读取Excel的全路径</param> ///<returns></returns> private DataTable ReadExcelWithStream(string path) { DataTable dt = new DataTable(); bool isDtHasColumn = false; //标记DataTable 是否已经生成了列 StreamReader reader = new StreamReader(path,System.Text.Encoding.Default); //数据流 while(!reader.EndOfStream) { string meaage = reader.ReadLine(); string[] splitResult = message.Split(new char[]{','},StringSplitOption.None); //读取一行 以逗号分隔 存入数组 DataRow row = dt.NewRow(); for(int i = 0;i<splitResult.Length;i++) { if(!isDtHasColumn) //如果还没有生成列 { dt.Columns.Add("column" + i,typeof(string)); } row[i] = splitResult[i]; } dt.Rows.Add(row); //添加行 isDtHasColumn = true; //读取第一行后 就标记已经存在列 再读取以后的行时,就不再生成列 } return dt; }
ASP读取EXCEL数据
把EXCEL当成数据库来读要有很严格的格式限制,还会出现很多问题...'==================='Ⅰ)将Excel97或Excel2000生成的XLS文件(book)看成一个数据库,其中的每一个工作表(sheet)看成数据库表'Ⅱ)ADO假设Excel中的第一行为字段名.所以你定义的范围中必须要包括第一行的内容'Ⅲ)Excel中的行标题(即字段名)不能够包含数字. Excel的驱动在遇到这种问题时就会出错的。
例如你的行标题名为"F1"'Ⅳ)如果Excel表中某一列同时包含了文本和数字的话,那么Excel的ODBC驱动将不能够正常处理这一行的数据类型,你必须要保证该列的数据类型一致(加入预设符号强制转成文本,后台再作处理)'Ⅴ)日期型时,整列不能有空格,否则读不出'============================攻略:===============1、通过filefield获得文件2、验证.xls文件3、建立连接'建立excel连接set excelconn=server.createobject("adodb.connection")strAddr = Server.MapPath(uploadpath&filename)'输出源文件名Response.Write "源文件:"&strAddr&""excelconn.open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & strAddr'建立excel记录集set excelrs=server.createobject("adodb.recordset")sql="select * from [Sheet1$]" excelrs.open sql,excelconn,1,1 ............excelrs.close() set excelrs=nothingexcelconn.Close()set excelconn=nothing================================<%Option Explicit%><html><head><title>操纵Excel</title></head><body><h2 align="center">显示Excel文件示例</h2><table border="1" width="90%" align="center"><tr align="center" bgcolor="#E6E6E6"><td>学号</td><td>姓名</td><td>数学</td><td>语文</td><td>英语</td><td>总分</td></tr><%'建立Connection对象Dim db,rs,strSqlSet db = Server.CreateObject("ADODB.Connection")db.Open "Driver={Microsoft Excel Driver (*.xls)};Dbq=" & Server.MapPath("Mark.xls")'打开记录集,表名一定要以"[表名$]"的格式strSql="Select * From [Sheet1$]"Set rs=db.Execute(strSql)'循环读取所有行Do While Not rs.EOFResponse.Write "<tr align='center'>"Response.Write "<td>" & rs("学号") & "</td>" Response.Write "<td>" & rs("姓名") & "</td>" Response.Write "<td>" & rs("数学") & "</td>" Response.Write "<td>" & rs("语文") & "</td>" Response.Write "<td>" & rs("英语") & "</td>" Response.Write "<td>" & rs("总分") & "</td>" Response.Write "</tr>"rs.MoveNextLoop'关闭对象rs.CloseSet rs=nothingdb.CloseSet db=Nothing%></table></body></html><%set rs=server.createobject("adodb.recordset")sql="select * from provinceinfo where 1=1"rs.open sql,objconn,1,1Set ExcelApp =CreateObject("Excel.Application") ExcelApp.Application.Visible = TrueSet ExcelBook = ExcelApp.Workbooks.AddExcelBook.WorkSheets(1).cells(1,1).value ="用户表" ExcelBook.WorkSheets(1).cells(2,1).value = "用户编号" ExcelBook.WorkSheets(1).cells(2,2).value = "登陆名" ExcelBook.WorkSheets(1).cells(2,3).value = "真实姓名" ExcelBook.WorkSheets(1).cells(2,4).value = "密码"cnt =3do while not rs.eofExcelBook.WorkSheets(1).cells(cnt,1).value = rs("provinceid") ExcelBook.WorkSheets(1).cells(cnt,2).value = rs("province") ExcelBook.WorkSheets(1).cells(cnt,3).value = rs("flag") ExcelBook.WorkSheets(1).cells(cnt,4).value = rs("id")rs.movenextcnt = cint(cnt) + 1loopExcelbook.SaveAs "d:\yourfile.xls" '这个是数据导出完毕以后在D盘存成文件ExcelApp.Application.Quit '导出以后退出ExcelSet ExcelApp = Nothing '注销Excel对象%><%Set xlApplication = Server.CreateObject("Excel.Application") '调用excel对象xlApplication.Visible = False '无需打开excelxlApplication.SheetsInNewWorkbook=1 '指定excel中表的数量xlApplication.Workbooks.Add '添加工作簿Set xlWorksheet = xlApplication.Worksheets(1) '生成第1个工作表的子对象="统计" '指定工作表名称'指定列的宽度以及对齐方式xlApplication.ActiveSheet.Columns(1).ColumnWidth=5xlApplication.ActiveSheet.Columns(1).HorizontalAlignment=3xlApplication.ActiveSheet.Columns(2).ColumnWidth=40xlApplication.ActiveSheet.Columns(2).HorizontalAlignment=1xlApplication.ActiveSheet.Columns(3).ColumnWidth=5xlApplication.ActiveSheet.Columns(3).HorizontalAlignment=3xlApplication.ActiveSheet.Columns(4).ColumnWidth=15xlApplication.ActiveSheet.Columns(4).HorizontalAlignment=1xlApplication.ActiveSheet.Columns(5).ColumnWidth=12xlApplication.ActiveSheet.Columns(5).HorizontalAlignment=1xlApplication.ActiveSheet.Columns(6).ColumnWidth=12xlApplication.ActiveSheet.Columns(6).HorizontalAlignment=3'xlApplication.ActiveSheet.Rows(i).RowHeight = 30'行的高度'指定列的高度以及特定列xlWorksheet.Range(xlWorksheet.Cells(1,1), xlWorksheet.Cells(1,6)).MergeCells =True '合并列xlWorksheet.Range("A1").value="2005年统计"xlWorksheet.Range("A1").font.Size=14'字体大小xlWorksheet.Range("A1").font.bold=true'粗体xlWorksheet.Range("A1").HorizontalAlignment=3'水平对齐xlWorksheet.Range("A1").VerticalAlignment=3'垂直对齐xlWorksheet.Cells(2,1).Value = "序号"xlWorksheet.Cells(2,2).Value = "标题"xlWorksheet.Cells(2,3).Value = "图"xlWorksheet.Cells(2,4).Value = "部门"xlWorksheet.Cells(2,5).Value = "作者"xlWorksheet.Cells(2,6).Value = "时间"xlWorksheet.Range("A2:F2").Borders.LineStyle=1'--------------------------------------------------自己可做循环i=i+1(数据库数据)'xlWorksheet.Cells(2+i,1).Value = i'xlWorksheet.Cells(2+i,2).Value = topic'xlWorksheet.Cells(2+i,3).Value = img_str'xlWorksheet.Cells(2+i,4).Value = nfrom'xlWorksheet.Cells(2+i,5).Value = writer'xlWorksheet.Cells(2+i,6).Value = ntime'--------------------------------------------------Set fs = CreateObject("Scripting.FileSystemObject")tfile=Server.MapPath("test.xls")if fs.FileExists(tfile) thenSet f = fs.GetFile(tfile)f.delete trueSet f = nothingend ifSet fs = nothingxlWorksheet.SaveAs tfile '保存文件xlApplication.Quit '释放对象Set xlWorksheet = NothingSet xlApplication = Nothing%><p align="center"><a href="downfile.asp?fileSpec=<%=tfile%>">下载</a></p>downfile.asp<%Function downLoadFile(FileSpec)on error resume nextConst ForReading=1Const TristateTrue=-1Const FILE_TRANSFER_SIZE=1024 '16384Dim objFileSystem, objFile, objStreamDim charDim sentSet objFileSystem = CreateObject("Scripting.FileSystemObject")If objFileSystem.FileExists(fileSpec)=false Thenresponse.write("<Script>alert(""请求文件不存在!"");history.back();</script>") Exit FunctionEnd IfFileName = objFileSystem.GetFileName(FileSpec)send=0TransferFile = TrueSet objFileSystem = Server.CreateObject("Scripting.FileSystemObject")Set objFile = objFileSystem.GetFile(FileSpec)Set objStream = objFile.OpenAsTextStream(ForReading, TristateTrue)Response.AddHeader "content-type", "application/octet-stream"Response.AddHeader "Content-Disposition","attachment;filename=" & filenameResponse.AddHeader "content-length", objFile.SizeDo While Not objStream.AtEndOfStreamchar = objStream.Read(1)Response.BinaryWrite(char)sent = sent + 1If (sent MOD FILE_TRANSFER_SIZE) = 0 ThenResponse.FlushIf Not Response.IsClientConnected ThenTransferFile = FalseExit DoEnd IfEnd IfLoopResponse.FlushIf Not Response.IsClientConnected Then TransferFile = FalseobjStream.CloseSet objStream = NothingSet objFileSystem = NothingEnd FunctionfileSpec =Lcase(Cstr(Trim(Request("fileSpec"))))downLoadFile(fileSpec)%>环境配置服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即:1.Win9x+PWS+Office2.Win2000 Professional+PWS+Office3.Win2000 Server+IIS+Office目前笔者测试成功的环境是后二者。
ASP连接excel的方法
asp连接Excel的方法一、asp连接Excel的方法与代码:<%dim connxls,connstrxlsconnstrxls="DBQ=d:\newexcel.xls;DefaultDir=;DRIVER={Microsoft Excel Driver (*.xls)};"Set connxls=Server.CreateObject("ADODB.Connection")connxls.Open connstrxlsSet rsxls=Server.CreateObject("ADODB.Recordset")SQLxls = "select * from [new$]"%>注意:写法和连接ACCESS基本相同,不同的是,在调用工作表的时候,不能直接用表名,工作表名后要加$,而且要用“[]”括起来。
二、asp操作Excel的总结:1、建立Excel对象setobjExcelApp=CreateObject("Excel.Application")objExcelApp.DisplayAlerts=false不显示警告objExcelApp.Application.Visible=false不显示界面2、新建Excel文件objExcelApp.WorkBooks.addsetobjExcelBook=objExcelApp.ActiveWorkBooksetobjExcelSheets=objExcelBook.WorksheetssetobjExcelSheet=objExcelBook.Sheets(1)3、读取已有Excel文件strAddr=Server.MapPath(".")objExcelApp.WorkBooks.Open(strAddr&"\Templet\Table.xls")Set objExcelBook=objExcelApp.ActiveWorkBookSet objExcelSheets=objExcelBook.WorksheetsSet objExcelSheet=objExcelBook.Sheets(1)4、另存Excel文件objExcelBook.SaveAsstrAddr&"\Temp\Table.xls"5、保存Excel文件objExcelBook.Save(笔者测试时保存成功,页面报错。
在ASP网页中访问Excel文件
在ASP网页中访问Excel文件在ASP网页中访问Excel文件Excel文件可以作为活动文档(ActiveX Document)在活动文档容器(ActiveX Document Container)中打开,而IE就是一个活动文档容器,所以当页面中的链接指向一个Excel文件时,单击此链接即可启动Excel,最终将文件显示在IE窗口中。
这种方法虽然简单,但存在不少缺陷:客户机内必须安装Excel。
在企业内部网上还有可能做到,但Internet上就不现实了。
访问文档时将启动Excel,速度较慢。
若览器不是IE,则可能不是活动文档容器,因此将不能正确显示文件。
下面介绍一种在ASP文件中通过ADO访问Excel文件的方法。
----ADO是微软发布的基于OLEDB技术的数据库编程接口,通过ODBC驱动程序可以访问多种不同格式的数据文件,其中包括Excel文件。
要获得Excel的ODBC驱动程序,可以通过安装Office97,也可以去微软的站点下载。
正确安装后在控制面板中会出现ODBC数据源管理器,打开它确认在驱动程序页中有Excel的驱动程序。
然后编写Brow.ASP程序,如下例所示。
例中假设在同一目录下有Excel文件01.xls,且包含名为sheet1的工作表,工作表的第一行为列标题,以后为相应的数据。
Brow.asp:程序代码:<%Const adOpenStatic = 3Dim conn Dim rs ,dbPath Set conn = erver.CreateObject("ADODB.Connection") ‘ 生成实际路dbPath=server.MapPath("01.xls") ‘ 驱动程序名称必须与ODBC中的驱动程序名完全一致,包括空格conn.Open "driver={Microsoft Excel Driver (*.xls)};dbq=" & dbPath Set rs = Server.CreateObject("ADODB.Rec ordset") ‘ 在工作表后加上$,同时必须在工作表名外加括号rs.Open "[sheet1$]", conn, adOpenStatic% >< html >< head >< meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80" >< meta name="GENERATOR" content="Microsoft FrontPage Express 2.0" >< title > 浏览Excel数据表< /title >< /head >< body bgcolor="#FFFFFF" >< h2 align="center" >Brow.asp - 浏览Excel数据表< /h2 >< hr >< %Response.Write "< CENTER >< TABLE BORDER=1 >"Response.Write "< TR BGCOLOR=#00FFFF >"Response.WRITE "< TD >编号< /TD >" ‘ 显示每列的标题For i=0 to rs.Fields.Count-1Response.WRITE "< TD >" & rs.Fields(i).Name & "< /TD >"NextResponse.Write "< /TR >" RecNo=1‘ 显示工作表中的所有数据Do While Not rs.EOFResponse.Write "< TR > "Response.Write "< TD >" & RecNo & "< /TD >"‘显示各列的数据For i=0 to rs.Fields.Count-1Response.WRITE "< TD >" & rs.Fields(i).Value & "< /TD >"NextResponse.Write "< /TR >"rs.MoveNext RecNo=RecNo+1 LoopResponse.Write "< /TABLE >< /CENTER >"% >< hr > < /body > < /html >ODBC 将指定的工作表的第一行各列的内容识别成字段名,以下各行作为相应的数据,若打开的工作表中数据将没有按此规律出现,则需要指定范围。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ASP直接调用EXCEL数据的例子(不用ODBC)
例子:
在"c:excelbook1.xls"存在一个EXCEL表book1.xsl,表的结构如下:
1 序号名称金额
2 1 张三100
3 2 李四200
4 3 王五300
序号字段不为空
注意:excel 起始行是1而不是为0
<%@language=vbscript %>
<%
Set xlApp = server.CreateObject("Excel.Application")
strsource = "c:excelbook1.xls"
Set xlbook = xlApp.Workbooks.Open(strsource)
Set xlsheet = xlbook.Worksheets(1)
i=1
response.write "<table cellpadding=0 cellspacing=0 border=1 width=500>"
while xlsheet.cells(i,1)<>""
response.write "<tr>"
response.write " <td height=20 align=center width=100>" & xlsheet.Cells(i, 1) & "</td>" response.write " <td height=20 align=center width=200>" & xlsheet.Cells(i, 2) & "</td>" response.write " <td height=20 align=center width=200>" & xlsheet.Cells(i, 3) & "</td>" response.write "</tr>"
i=i+1
wend
response.write "</table>"
set xlsheet=nothing
set xlbook=nothing
xlApp.quit '千万记住要加这一句,否则每运行一次你的机器里就增加一个excel进程,而且无法释放。
我试过"set xlApp=nothing"是不行的。
%>。