zoukankan      html  css  js  c++  java
  • 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=nothing
         excelconn.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,strSql
    Set 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.EOF
    Response.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.MoveNext
    Loop

    '关闭对象
    rs.Close
    Set rs=nothing
    db.Close
    Set db=Nothing
    %>
    </table>
    </body>
    </html>
  • 相关阅读:
    WCF中关于可靠会话的BUG!!
    控制并发访问的三道屏障: WCF限流(Throttling)体系探秘[下篇]
    《天使之恋》,一部重口味的纯美爱情电影
    一个关于解决序列化问题的编程技巧
    [转]Design Rules for ModelViewPresenter
    你知道Unity IoC Container是如何创建对象的吗?
    只在UnitTest和WebHost中的出现的关于LogicalCallContext的严重问题
    使命必达: 深入剖析WCF的可靠会话[原理揭秘篇](上)
    回调与并发: 通过实例剖析WCF基于ConcurrencyMode.Reentrant模式下的并发控制机制
    如何编写没有Try/Catch的程序
  • 原文地址:https://www.cnblogs.com/rooney/p/1428382.html
Copyright © 2011-2022 走看看