账号通
    

账号  

密码  

40203

查看

80

回复
主题:数据库导出真正的EXCEL文件---附源码 [收藏主题] 转到:  
ahwh 当前离线

101

主题

1

广播

5

粉丝
添加关注
级别:一年级

用户积分:977 分
登录次数:318 次
注册时间:2009/4/10
最后登录:2020/3/27
ahwh 发表于:2012/3/6 15:28:37   | 显示全部帖子 查看该作者主题 楼主 
科汛在线网校系统

我也是从网上弄来的,自己加工了一下,更符合科汛的要求。。

生成真正的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支持。。

另外还有一个地方给权限,即是组件服务里 连接类型选择调用,然后给权限。。。。网上一搜一大把。。



助你一臂之力,帮你省点代码。



 
  支持(17) | 反对(16) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.14844秒 powered by KesionCMS 9.0