asp论文

您当前的位置:学术堂 > 计算机论文 > asp论文 >

基于ASP+Excel的信息收集系统构建

来源:学术堂 作者:朱老师
发布于:2016-10-25 共3533字
  摘要

        高校教师与学生的课堂交流时间有限,课后沟通相对较少,导致很多学生遇到问题时无法得到及时有效的指导。学科小专题网站的建立一定程度上解决了这个难题。信息收集是学科小专题网站中非常实用的一个功能,可以帮助教师收集学生的反馈信息,为课堂教学改革提供思路,使之更具针对性和实效性。为此,笔者设计了1个基于ASP+Excel的信息收集系统,整套程序由3个ASP页面和1个Access数据库文件构成,系统结构目录清晰,易读性强,如图1所示。该系统程序简单,学生在网上提交的数据可以以Excel文件的方式记录保存下来,方便教师对信息的编辑管理。
  
  系统目录结构
  
  1  表单的应用
  
  表单是实现动态网页的一种直观方式,是实现网页交互的窗口,主要用来收集用户的反馈信息。网页浏览者输入必要的信息后,单击表单上的提交按钮,这些信息就能发送到服务器,服务器端脚本或应用程序对这些信息进行处理后,将请求信息发送回用户,或对该表单内容执行一些操作来进行响应。在网上反馈页面完成各种信息的输入或选择后,单击“提交”按钮,通过服务器端的表单处理程序(CGI)以及客户端的应用程序ASP将信息反馈到服务器端,并处理为可以识别的数据信息,然后存放到数据库中。在Dreamweaver中,插入栏的“表单”面板中包含着各种表单元素,可以快捷地创建表单,其自动生成的代码如下:
  
  <form  name=“form1”  method=“post”  action=
  “add.asp” on Submit=“return Check Form(this);”>
  <table width=“663” border=“0”>
  <tr>
  <td width=“657”><label>您的姓名:
  <input  name=“user_name”  type=“text”  id=“user_name” value=“” size=“60”>
  </label></td>
  </tr>
  <tr>
  <td width=“657”><label>您的联系方式:
  <input  name=“user_lxfs”  type=“text”  id=“user_lxfs” value=“” size=“60”>
  </label></td>
  </tr>
  <tr>
  <td  width=“657”><label>请输入您对本文的看法:
  </label></td>
  </tr><tr>
  <td width=“657”><label>
  <textarea  name=“user_post”  cols=“85”  id=
  “user_post”></textarea>
  </label></td>
  </tr>
  <tr>
  <td align=“center”><label>
  <input  type=“submit”  name=“Submit”  value=“提交”>
  </label></td>
  </tr>
  </table>
  </form>
  
  以上“文本域”中的名称user_name、user_lxfs、user_post必须输入,否则add.asp文件和Excel.asp文件的应用将会受到影响。完成表单的设计后,还需要定义并调用Check Form函数,以检测表单提交的内容是否符合要求。
  
  <script  language=“javascript”  type=
  “text/javascript”>
  function Check Form(formnames){
  if(formnames.user_name.value==‘)
  {
  alert(“姓名不能为空!”);
  formnames.user_name.focus();
  return false;
  }
  if(formnames.user_lxfs.value==’)
  {
  alert(“联系方式不能为空!”);
  formnames.user_lxfs.focus();
  return false;
  }
  if(formnames.user_post.value==‘)
  {
  alert(“具体表达的信息内容不能为空!”);
  formnames.user_post.focus();
  return false;
  }
  return true;
  }
  </script>
  
  2  创建数据库
  
  在本程序中,使用Access  2003创建反馈页面的数据库文件。具体的操作步骤包括:①运行Access2003,依次单击“文件→菜单”,在右侧的“新建任务”任务窗格中,单击“空数据库”项,在弹出的“文件新建数据库”对话框中,将数据库文件命名为book.mdb.②单击“创建按钮”,返回Access窗口,在列表中双击选择“使用设计器创建表”项,在出现的“表1:表”窗口中,在“字段名称”的第一行输入“ID”,在下拉列表中选择“自动编号”并设置为主键。③在“字段名称”的第2行单元格中输入“name”,在“数据类型”下拉列表中选择“文本”项,在下方的“常规”标签页中,设置“字段大小”为“20”,在“必填字段”中选择“是”,在“允许空字符串”中选择“否”,其余项保留默认设置。④分别在“字段名称”的第3行、第4行单元格中输入“lxfs”、“Content”,在“数据类型”中选择相应的类型并对属性进行设置,最后单击“文件→保存”按钮,在弹出的“另存为”对话框中输入当前表的名称,如guestbook.完成后的字段如图2所示。
  
  字段设置
  
  3  数据库的连接
  
  为页面连接数据库是实现服务器行为的重要前提。创建一个可以连接数据库的文件 add.asp,实现两个功能:index.asp 页面与数据库文件 book.mdb的连接;book.mdb 与 Excel 文件的连接。
  
  <%,
  ip = Replace(Request.Server Variables(“HTTP_X_
  FORWARDED_FOR”),“’”,“”)
  If  ip=Empty  Then  ip=Replace(Request.Server Vari-
  ables(“REMOTE_ADDR”),“‘”,“”)
  set conn=server.createobject(“adodb.connection”)
  conn . open  “driver = {microsoft  access  driver
  (*.mdb)};dbq=”&server.mappath(“book.mdb”)
  name=Request.Form(“user_name”)
  lxfs=Request.Form(“user_lxfs”)
  content=Request.Form(“user_post”)
  exec = “insert  into  gustbook(name ,lxfs ,content ,
  ip)values(’”&name&“‘ ,’”&lxfs&“‘ ,’”&content&“‘ ,’”&ip&“‘)”
  conn.execute exec
  conn.close
  set conn=nothing
  response.write  “<script  language='javascript'>loca-
  tion='Excel.asp';</script>”
  %,>
  
  以上语句的作用是设置数据库驱动,指定数据库路径及连接到具体的表,向数据库 gustbook 表中写入数据。driver  和(*.mdb)之间要有 1 个空格,数据库文件的路径采用相对路径,相对路径是最适合网站内部链接的路径方式。只要属于同一个站点,即使不在同一个目录下,也可以使用相对路径方式,方便与目 录 的 自 适 应 .其 中 ,name = Request.Form(“user_name”) 、lxfs = Request.Form  (“user_lxfs”) 、content=Request.Form(“user_post”)这 3 句定义了变量取值的来源,即从表单的不同文本框中取值,用于调用 Indea.asp 页面中文本域的内容插入到 gustbook表的 name、lxfs、content 字段中(即把变量获得的值插入到数据库文件的 name、lxfs、content 字段中),最后将表单中的提交按钮动作指向 Excel.asp.
  
  4  将数据写入 Excel表
  
  这一步主要实现将数据写入 Excel 表。指定所生成的 Excel 文件存放在同一目录位置,然后自动创建1 个 Excel 文件,在数据库中把希望放到 Excel 中的数据查出来,将 mdb 表的列名写入 Excel,再将 mdb表里的数据写入 Excel,最后指定输出的表名,在结果页面中给出提示信息,并返回跳转到 index.asp 首页面。具体代码如下:
  
  <%,
  dim conn
  conn = “provider = Microsoft.Jet.OLEDB.4.0 ;Data
  Source=” & Server.Map Path(“book.mdb”)
  Set cn=Server.Create Object(“ADODB.Connection”)
  cn.Open conn
  dim rs,sql,filename,fs,myfile,x,link
  Set  fs = server.Create Object  (“scripting.Filesystemob-
  ject”)
  filename=server.Map Path(“./”)&“/book.xls”
  if fs.File Exists(filename)then
  fs.Delete File(filename)
  end if
  set myfile=fs.Create Text File(filename,true)
  Set rs=Server.Create Object(“ADODB.Recordset”)
  sql=“select  name,lxfs,content  from  gustbook  order
  by id desc”
  rs.Open sql,cn,3,1
  if not rs.EOF then
  dim str Line,responsestr
  str Line=“”
  For each x in rs.fields
  str Line=str Line & x.name & chr(9)
  Next
  myfile.writeline str Line
  Do while Not rs.EOF
  str Line=“”
  for each x in rs.Fields
  str Line=str Line & x.value & chr(9)
  next
  myfile.writeline str Line
  rs.Move Next
  loop
  end if
  rs.Close
  set rs=nothing
  cn.close
  set cn=nothing
  set myfile=nothing
  Set fs=Nothing
  link=“<A HREF=” & filename & “>Open The Excel
  File</a>”
  'Response.write link
  response.write “<script language='javascript'>location
  ='index.asp';</script>”
  %,>
  
  这样,当浏览者在 index.asp 页面输入必要的信息后,单击“提交”,系统将自动创建 1 个 Excel 文件,并把所输入的信息悉数显示在 Excel 的单元格内,如图 3、4.若需要重新收集,只需要删除该 Excel文件即可,系统将另建 1 个新的 Excel 文件,可见系统具有一定的智能性。
  
   Excel文件的自动创建
  
   Excel中收集的数据
  
  5  结  语
  
  本文设计了一套信息收集系统,设计过程简洁,步骤流程清晰,代码简单易行,执行效率和灵活性高,移植性强。从实现效果上看,系统能够完成基于Excel 形式的信息编辑,且信息集中收集在 1 张表中,也方便管理和保存,对后续完成一些统计分析工作非常有利,也可为实现某些特殊的用途带来帮助(如对于有保密需求的信息收集,不需要注册、不方便实名提交信息的收集等)。从学科小专题网站的功能需求来说,基本可以满足信息收集的任务,甚至可以实现量身定制功能,能够为教师提供便利,对教学研究和网站建设都具有很好的促进作用。
  
  参考文献
  
  [1]  纪宏伟。  一种简单易行的投稿查询系统的设计与实现[J].  电脑与信息技术,2014,22(6):57-59.
  [2]  纪宏伟,朱亚林。  基于 asp 和 Excel 的信息收集实例[EB/OL].
  [3]  求索屋。  基于 asp 和 Excel 的学生成绩查询系统实例[EB/OL].
  [4]  徐洪霞。  网站设计必学的 66 个实例[M].  上海:上海科学技术出版社,2008:341-343.
  [5]  纪宏伟。  校园网站建设中网页限制查看的方法  [J].青海师范大学学报:自然科学版,2014,30(1):23-27.
  [6]  纪宏伟。  基于 Jmail 组件的网站访客邮件提醒程序的实践研究[J].  西安文理学院学报:自然科学版,2014,17(2):68-73.
相关内容推荐
相关标签:asp毕业论文
返回:asp论文