ASP生成excel问题请教,谢谢! |
| 作者:cuipingtiao 来源:不详 发布时间:2008/09/24 发布人:admin |
在ASP中生成excel的时候,碰到了一些问题:代码如下: On Error Resume Next strAddr = Server.MapPath(".") objExcelSheet.Range("B2:k2").Value = Array("Week1", "Week2", "Week3", "Week4", "Week5", "Week6", "Week7", "Week8", "Week9", "Week10") objExcelApp.Quit %> 在哪里的,找不到啊? 我给个给你,你参考一下: Set rs = Server.CreateObject("ADODB.Recordset") sql="select name,sex,age,email,company,per,address,code,phone,defen from per" else rs.Close 以上的代码是可以生成excel文件,但是好像不能处理,把单员格给合并,而采用excel.appliction的话是可以把但愿格给合并的. 谢谢你啊我也参考了你的代码可是运行出现了错误,错误代码如下: 请 这句代码应该是没有问题的,我在我自己的机子上可以运行. 我给你一个一段代码,你试试看.但置一下浏览器. <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>WEB页面导出为EXCEL文档的方法</title> </head> <body> <table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0"> <tr> <td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td> </tr> <tr> <td>列标题1</td> <td>列标题2</td> <td>列标题3</td> <td>列标题4</td> <td>列标题5</td> </tr> <tr> <td>aaa</td> <td>bbb</td> <td>ccc</td> <td>ddd</td> <td>eee</td> </tr> <tr> <td>AAA</td> <td>BBB</td> <td>CCC</td> <td>DDD</td> <td>EEE</td> </tr> <tr> <td>FFF</td> <td>GGG</td> <td>HHH</td> <td>III</td> <td>JJJ</td> </tr> <input type="button" onclick="javascript:method2('tableExcel');" value="第二种方法导入到EXCEL"> <input type="button" onclick="javascript:getXlsFromTbl('tableExcel',null);" value="第三种方法导入到EXCEL"> <SCRIPT LANGUAGE="javascript"> function method1(tableid) {//整个表格拷贝到EXCEL中 var curTbl = document.getElementById(tableid); var oXL = new ActiveXObject("Excel.Application"); //创建AX对象excel var oWB = oXL.Workbooks.Add(); //获取workbook对象 var oSheet = oWB.ActiveSheet; //激活当前sheet var sel = document.body.createTextRange(); sel.moveToElementText(curTbl); //把表格中的内容移到TextRange中 sel.select(); //全选TextRange中内容 sel.execCommand("Copy"); //复制TextRange中内容 oSheet.Paste(); //粘贴到活动的EXCEL中 oXL.Visible = true; //设置excel可见属性 } function method2(tableid) //读取表格中每个单元到EXCEL中 { var curTbl = document.getElementById(tableid); var oXL = new ActiveXObject("Excel.Application"); //创建AX对象excel var oWB = oXL.Workbooks.Add(); //获取workbook对象 var oSheet = oWB.ActiveSheet; //激活当前sheet var Lenr = curTbl.rows.length; //取得表格行数 for (i = 0; i < Lenr; i++) { var Lenc = curTbl.rows(i).cells.length; //取得每行的列数 for (j = 0; j < Lenc; j++) { oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText; //赋值 } } oXL.Visible = true; //设置excel可见属性 } function getXlsFromTbl(inTblId, inWindow) { try { var allStr = ""; var curStr = ""; //alert("getXlsFromTbl"); if (inTblId != null && inTblId != "" && inTblId != "null") { curStr = getTblData(inTblId, inWindow); } if (curStr != null) { allStr += curStr; } else { alert("你要导出的表不存在!"); return; } var fileName = getExcelFileName(); doFileExport(fileName, allStr); } catch(e) { alert("导出发生异常:" + e.name + "->" + e.description + "!"); } } function getTblData(inTbl, inWindow) { var rows = 0; //alert("getTblData is " + inWindow); var tblDocument = document; if (!!inWindow && inWindow != "") { if (!document.all(inWindow)) { return null; } else { tblDocument = eval(inWindow).document; } } var curTbl = tblDocument.getElementById(inTbl); var outStr = ""; if (curTbl != null) { for (var j = 0; j < curTbl.rows.length; j++) { //alert("j is " + j); for (var i = 0; i < curTbl.rows[j].cells.length; i++) { //alert("i is " + i); if (i == 0 && rows > 0) { outStr += " \t"; rows -= 1; } outStr += curTbl.rows[j].cells.cells.cells.cells.cells[em01][em01] 我给你一个一段代码,你试试看.但置一下浏览器. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>WEB页面导出为EXCEL文档的方法</title> </head> <body> <table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0"> <tr> <td colspan="5" align="center">WEB页面导出为EXCEL文档的方法</td> </tr> <tr> <td>列标题1</td> <td>列标题2</td> <td>列标题3</td> <td>列标题4</td> <td>列标题5</td> </tr> <tr> <td>aaa</td> <td>bbb</td> <td>ccc</td> <td>ddd</td> <td>eee</td> </tr> <tr> <td>AAA</td> <td>BBB</td> <td>CCC</td> <td>DDD</td> <td>EEE</td> </tr> <tr> <td>FFF</td> <td>GGG</td> <td>HHH</td> <td>III</td> <td>JJJ</td> </tr> <input type="button" onclick="javascript:method2('tableExcel');" value="第二种方法导入到EXCEL"> <input type="button" onclick="javascript:getXlsFromTbl('tableExcel',null);" value="第三种方法导入到EXCEL"> <SCRIPT LANGUAGE="javascript"> function method1(tableid) {//整个表格拷贝到EXCEL中 var curTbl = document.getElementById(tableid); var oXL = new ActiveXObject("Excel.Application"); //创建AX对象excel var oWB = oXL.Workbooks.Add(); //获取workbook对象 var oSheet = oWB.ActiveSheet; //激活当前sheet var sel = document.body.createTextRange(); sel.moveToElementText(curTbl); //把表格中的内容移到TextRange中 sel.select(); //全选TextRange中内容 sel.execCommand("Copy"); //复制TextRange中内容 oSheet.Paste(); //粘贴到活动的EXCEL中 oXL.Visible = true; //设置excel可见属性 } function method2(tableid) //读取表格中每个单元到EXCEL中 { var curTbl = document.getElementById(tableid); var oXL = new ActiveXObject("Excel.Application"); //创建AX对象excel var oWB = oXL.Workbooks.Add(); //获取workbook对象 var oSheet = oWB.ActiveSheet; //激活当前sheet var Lenr = curTbl.rows.length; //取得表格行数 for (i = 0; i < Lenr; i++) { var Lenc = curTbl.rows(i).cells.length; //取得每行的列数 for (j = 0; j < Lenc; j++) { oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText; //赋值 } } oXL.Visible = true; //设置excel可见属性 } function getXlsFromTbl(inTblId, inWindow) { try { var allStr = ""; var curStr = ""; //alert("getXlsFromTbl"); if (inTblId != null && inTblId != "" && inTblId != "null") { curStr = getTblData(inTblId, inWindow); } if (curStr != null) { allStr += curStr; } else { alert("你要导出的表不存在!"); return; } var fileName = getExcelFileName(); doFileExport(fileName, allStr); } catch(e) { alert("导出发生异常:" + e.name + "->" + e.description + "!"); } } function getTblData(inTbl, inWindow) { var rows = 0; //alert("getTblData is " + inWindow); var tblDocument = document; if (!!inWindow && inWindow != "") { if (!document.all(inWindow)) { return null; } else { tblDocument = eval(inWindow).document; } } var curTbl = tblDocument.getElementById(inTbl); var outStr = ""; if (curTbl != null) { for (var j = 0; j < curTbl.rows.length; j++) { //alert("j is " + j); for (var i = 0; i < curTbl.rows[j].cells.length; i++) { //alert("i is " + i); if (i == 0 && rows > 0) { outStr += " \t"; rows -= 1; } outStr += curTbl.rows[j].cells.cells.cells.cells.cells[em01][em01] 在浏览器里的安全设置里勾上,对没有安全标记的ACTI标记进行运行就OK了 谢谢各位,我先在我的机子上运行一下,看看! 已经试过sidivefen的三种生成excel的方法,在运行第一种第二种的时候,碰到了"automation 服务器不能创建对象"这个问题,在google中查询,也运行了它的解决方法,把IE的安全级别设置到了最低,但是还是会出现那个错误. 经过设置"对没有标记为安全Activex进行初始化和脚本运行" 的确可以生成EXCEL了,十分感谢楼上的. 看看 导出来的excel的格式还需要调整,正在研究excel类的各种方法,属性.有谁知道的,可以贴点出来,呵呵. |
| [] [返回] [打 印] [收 藏] [评 论] |
|
下一篇代码:一个ASP简单问题,求大侠们热心解答! |
精品推荐
阅读排行
· 自己动手输入网页背景颜色代码· 随机数字生成器
· 礼花背景(一个非常经典的网页背景)
· 鼠标经过文字变色
· 倒计时代码生成器
· [图文] 代码实现生成弹出窗口的特效
· [图文] 星星满天闪烁的背景
· 颜色英文代码全集
· 速度练习 测试你打字的速度
· 爱情游戏测试
相关代码
· ASP编程精华· asp中如何计算一个字符出现的次数/?
· 双鱼林asp.net公司进进销存信息管理系统
· JavaScript技术教程【下载】
· asp连接数据库SQLserver2000代码谁给发过来谢谢
· 打开asp首页出现错误
· 问个asp修改时间字段值的问题
· 怎么asp.net随便激发一个控键都会提交
· ASP.NET技术论坛历届版主名录
· ASP保留关键字问题
