我也是从网上弄来的,自己加工了一下,更符合科汛的要求。。
生成真正的EXCEL文件,而不是更改了后缀的文本文档。。
也是因为上次发贴 http://bbs.kesion.com/forumthread-356979.html
有部分汛友跟贴和消息要求给出来源码,我经常分享别人的成果,今天也奉献一下自己的。。。
先上张生成的EXCEL报表图。。这样的报表应该够用了。
操作步骤一。。
打开ADMIN /ks.CLASS.asp 用DW查找到“清空” 这儿是生成栏目的地方。你在合适的地方添加以下代码。
.echo "<input type=""text"" style=""display:none"" name=""myname"" id=""myname"" value='" & Node.SelectSingleNode("@foldername").text & "'>"
.echo "<input type=""text"" style=""display:none"" name=""bj"" id=""bj"" value='" & ID & "' >"
.echo " <input type=""submit"" name=""Submit3"" style='display:inline;' style="" border:0;line-height:18px;cursor:pointer; display:inline;background-color:#fff;"" value=""导出EXCEL表"" />"红色部分是设定一个ID为MYNAME的文本框值,取的是栏目的名称,因为导出EXCEL直接就拿该栏目名称命名了。
蓝色部分是定义ID为BJ 取当前栏目的TID编号,为下一页导出查询SQL语句做准备。
黑色部分是用按钮提交,FORM支持新窗口打开,你也可以定义一下。如果这些不懂的话,你弄的就吃力,找个稍懂的人帮你修改一下。
上一张我更改后的后台图片
导出EXCEL是个按钮,FORM指向EXCEL.asp文件。
EXCEL.asp为导出EXCEL源文件,其工作的原理是,
调用EXCEL,打开一个模板,然后逐行向里面添加自定义字段的,,,有模板,那么就好定义EXCEL的美观程度了。各位自己去发挥吧。
做了备注,应该能好理解和更改的。
bj=request.form("bj")'取得上个页面按钮传递过来的值‘上页传递过来的值是栏目的TID值,下面需要用来查询语句使用。
myname=request.form("myname")'取得上个页面按钮传递过来的值'上页传递过来的值是栏目的名称,我作为导出的EXCEL名称。
set objExcel=CreateObject("Excel.Application") '建立EXCEL连接
'(2) 打开Excel模板
objExcel.Workbooks.Open(server.mappath("mnkc")&"\excel.xlt") '打开Excel模板,mnkc是文件夹
objExcel.Sheets(1).select '选中工作页
set sheetActive=objExcel.ActiveWorkbook.ActiveSheet
dim conn,strconn '建立变量
set conn=server.CreateObject("adodb.connection") '建立数据库连接
strconn="driver={Microsoft Access driver (*.mdb)};dbq="&server.mappath("../data/mydata.mdb") '数据库路径
conn.Open strconn
strSql = "select * from KS_U_hyzc where TID='"&bj&"'"'查询语句
set rstData=server.createobject("adodb.recordset")'设置对象
rstData.open strSql,conn
'这里假设已有一个数据集rstData,存放由Sql操作生成的统计数据。
num=3 '从Excel的第七行开始
do until rstData.EOF '循环直至数据集中的数据写完
strRange="a"&num&":aj"&num '设定要填写内容的单元区域
sheetActive.range(strRange).font.size=10 '设定字体大小
sheetActive.range(strRange).WrapText=false '设定文字回卷
sheetActive.range(strRange).ShrinkToFit=true '设定是否自动适应表格单元大小
sheetActive.range(strRange).value=array(rstData("title"),rstData("ks_xb"),rstData("ks_sen"),rstData("ks_city"),rstData("ks_ssyy"),rstData("ks_ks"),rstData("ks_zc"),rstData("ks_lxdh"),rstData("ks_jzyj"),rstData("ks_zjhm"),rstData("KS_dc_cfrq"),rstData("KS_dc_cfcs"),rstData("KS_dc_ddcs"),rstData("KS_dc_fjhb"),rstData("KS_dc_qfsj"),rstData("KS_dc_ddsj"),rstData("KS_hc_cfrq"),rstData("KS_hc_cfcs"),rstData("KS_hc_ddcs"),rstData("KS_hc_fjhb"),rstData("KS_hc_qfsj"),rstData("KS_hc_ddsj"),rstData("KS_df_cfrq"),rstData("KS_df_cfcs"),rstData("KS_df_ddcs"),rstData("KS_df_fjhb"),rstData("KS_df_qfsj"),rstData("KS_df_ddsj"),rstData("KS_hf_cfrq"),rstData("KS_hf_cfcs"),rstData("KS_hf_ddcs"),rstData("KS_hf_fjhb"),rstData("KS_hf_qfsj"),rstData("KS_hf_ddsj"),rstData("KS_bz"),rstData("AddDate")) '把数据集中的数据填写到相应的单元中
下载的文件包里有模板和EXCEL.ASP文件。。拿去用吧。
以下内容只有回复后才可以浏览,请先登录! 另啰嗦二句
要达成导出EXCEL的条件,需要服务器 的数据源有 XLS类型 ODBC支持。。
另外还有一个地方给权限,即是组件服务里 连接类型选择调用,然后给权限。。。。网上一搜一大把。。
助你一臂之力,帮你省点代码。