• 用JS讀取excel的例子


    <%
    ''
    '*********************************************************
     ' 目的:讀取excel資料後插入到數據庫中同時紀錄成功和失敗的數目
     ' 傳入:   
     ' 返回:
     '*********************************************************
    Function GetExcel()
     Dim conn
     Dim StrConn
     Dim rs
     Dim Sql
     file=""
     Set conn=Server.CreateObject("ADODB.Connection")
     StrConn="Driver={Microsoft Excel Driver (*.xls)};DBQ="& Server.MapPath("EXCEL_DATA.xls")
     ''StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=dd.xls;Extended Properties=Excel 8.0"
     conn.Open StrConn
     Set rs = Server.CreateObject("ADODB.Recordset")
     Sql="select * from [Sheet1$]"
     rs.Open Sql,conn,2,2
     ''讀取excel中的字段名稱,並檢察字段順序是否正確
     for i=0 to rs.Fields.Count-1
       FILE_HEAD=FILE_HEAD&rs(i).Name
     next
     ''response.write FILE_HEAD
     IF trim(FILE_HEAD)<>"版本使用單位類綱目節類說明綱說明目說明檔名保存年限共同分類號" THEN
      RESPONSE.WRITE "<SCRIPT LANGUAGE='JAVASCRIPT'>alert('EXCEL文件字段順序錯誤或字段數不對!!')</SCRIPT>"
      exit Function
      END IF
     ''讀取excel中的資料
     do while Not rs.EOF
      ''將讀取的資料INSERT到oracle數據庫
      for i=0 to rs.Fields.Count-1
       EDITION=rs(0)
       FILE_CODE=rs(2)+rs(3)+rs(4)+rs(5)
       FILE_NAME=rs(9)
       KIND1_DESC=rs(6)
       KIND2_DESC=rs(7)
       KIND3_DESC=rs(8)
       KIND4_DESC=rs(9)
       SAVE_YEAR=rs(10)
       FILE_UNIT=rs(1)
       COM_FILE_CODE=rs(11)
       ''==============================================
         CHECED_SQL="Select nvl(FILE_CASE,'') FILE_CASE FROM ODM67 where EDITION='"&TRIM(EDITION)&"' and FILE_CODE='"&TRIM(FILE_CODE)&"' "
         If mobjDB.OpenSQL(CHECED_SQL) Then
            If mobjDB.IsEmpty Then
              FILE_CASE="0001"
              CASE_DESC="總案"
              INS_SQL=""
              INS_SQL=INS_SQL & " INSERT INTO ODM67(" & VBCRLF
              INS_SQL=INS_SQL & "     EDITION,FILE_CODE,FILE_CASE," & VBCRLF
              INS_SQL=INS_SQL & "     CASE_DESC,CRT_USER,CRT_DATE," & VBCRLF
              INS_SQL=INS_SQL & "     CRT_TIME,MDF_USER,MDF_DATE,MDF_TIME)" & VBCRLF
              INS_SQL=INS_SQL & "   VALUES(" & VBCRLF
              INS_SQL=INS_SQL & "     '"&TRIM(EDITION)&"','"&TRIM(FILE_CODE)&"'," & VBCRLF
              INS_SQL=INS_SQL & "     '"&TRIM(FILE_CASE)&"','"&TRIM(CASE_DESC)&"'," & VBCRLF
              INS_SQL=INS_SQL & "     '"&TRIM(SESSION("USER_ID"))&"','"&TRIM(TODAY)&"'," & VBCRLF
              INS_SQL=INS_SQL & "     '"&TRIM(NOWTIME)&"','"&TRIM(SESSION("USER_ID"))&"'," & VBCRLF
              INS_SQL=INS_SQL & "     '"&TRIM(TODAY)&"','"&TRIM(NOWTIME)&"')"
              CALL mobjDB.ExecSQL(INS_SQL)
            End If
           End If
       ''==============================================
       INS_SQL=""
        INS_SQL=INS_SQL & " INSERT INTO ODM61( " & VBCRLF
        INS_SQL=INS_SQL & "       EDITION,FILE_CODE,FILE_NAME,KIND1_DESC," & VBCRLF
        INS_SQL=INS_SQL & "       KIND2_DESC,KIND3_DESC,KIND4_DESC,SAVE_YEAR," & VBCRLF
        INS_SQL=INS_SQL & "       FILE_UNIT,COM_FILE_CODE,CRT_USER,CRT_DATE," & VBCRLF
        INS_SQL=INS_SQL & "       CRT_TIME,MDF_USER,MDF_DATE,MDF_TIME)" & VBCRLF
        INS_SQL=INS_SQL & "     VALUES(" & VBCRLF
        INS_SQL=INS_SQL & "       '"&TRIM(EDITION)&"','"&TRIM(FILE_CODE)&"'," & VBCRLF
        INS_SQL=INS_SQL & "       '"&TRIM(FILE_NAME)&"','"&TRIM(KIND1_DESC)&"'," & VBCRLF
        INS_SQL=INS_SQL & "       '"&TRIM(KIND2_DESC)&"','"&TRIM(KIND3_DESC)&"'," & VBCRLF
        INS_SQL=INS_SQL & "       '"&TRIM(KIND4_DESC)&"','"&TRIM(SAVE_YEAR)&"'," & VBCRLF
        INS_SQL=INS_SQL & "       '"&TRIM(FILE_UNIT)&"','"&TRIM(COM_FILE_CODE)&"'," & VBCRLF
        INS_SQL=INS_SQL & "       '"&TRIM(SESSION("USER_ID"))&"','"&TRIM(TODAY)&"'," & VBCRLF
        INS_SQL=INS_SQL & "       '"&TRIM(NOWTIME)&"','"&TRIM(SESSION("USER_ID"))&"'," & VBCRLF
        INS_SQL=INS_SQL & "       '"&TRIM(TODAY)&"','"&TRIM(NOWTIME)&"')"
        ''RESPONSE.WRITE INS_SQL& "<BR>"
        IF mobjDB.ExecSQL(INS_SQL) THEN
         InCount=InCount+1
        ELSE
         NoCount=NoCount+1
         file=file&TODAY&"  "&NOWTIME&"   "&EDITION&"   "&FILE_CODE & VBCRLF
         END IF
        exit for
      next
     rs.MoveNext
     Loop
     rs.close
     set rs=nothing
     Conn.close
     set StrConn=nothing
     if file<>"" then
      CALL CreateFolder()
      call SetFile(file)
      strpath=server.mappath("EXCEL_DATA.xls")
      call DeleteFolder(strpath)
      file=""
     end if
     
    End Function
     '*********************************************************
     ' 目的:    新建一個指定的文件,如果存在就不新建,並向文件追加紀錄
     ' 傳入:    file:要追加的數據
     ' 返回:  
     '*********************************************************
    Function SetFile(file)
     file_path="C:\LOG\OD60err.log"
     set fstemp=server.CreateObject("Scripting.FileSystemObject")
     IF (fstemp.FileExists(file_path)) THEN
     ELSE
      set filetemp=fstemp.CreateTextFile(file_path,true)
      filetemp.writeLine "紀錄匯入失敗資料"
      filetemp.close
      END IF
     ''追加失敗資料信息OpenTextFile
     set filetemp=fstemp.OpenTextFile(file_path,8,true)
     filetemp.writeLine file
     filetemp.close
     set filetemp=Nothing
     set fstemp=Nothing
    End Function
    '*********************************************************
     ' 目的:    新建一個指定的文件夾,如果存在就不新建
     ' 傳入:  
     ' 返回:  
     '*********************************************************
    Function CreateFolder()
      Dim fso, f
      folder="c:\LOG"
      Set fso = CreateObject("Scripting.FileSystemObject")
      IF fso.FolderExists(folder) THEN
      ELSE
       Set f = fso.CreateFolder(folder)
        CreateFolderDemo = f.Path
      END IF
    End Function
    '*********************************************************
     ' 目的:刪除上傳的文件,
     ' 傳入:傳入上傳文件的虛擬路徑  
     ' 返回:  
     '*********************************************************
    Function DeleteFolder(filepath)
     Dim fso, f
      folder="EXCEL_DATA.xls"
      Set fso = CreateObject("Scripting.FileSystemObject")
      ''response.write fso.FileExists(filepath)
      IF fso.FileExists(filepath) THEN
       fso.DeleteFile filepath
      END IF
    End Function
    %>
  • 相关阅读:
    dedecms list 判断 每隔3次输出内容
    dede 后台登录以后一片空白
    SSO单点登录在web上的关键点 cookie跨域
    简单批量复制百度分享链接
    PHP强大的内置filter (一)
    MySql数据备份与恢复小结
    linux命令 screen的简单使用
    xdebug初步
    本地虚拟机挂载windows共享目录搭建开发环境
    MySQL 5.6 警告信息 command line interface can be insecure 修复
  • 原文地址:https://www.cnblogs.com/freeliver54/p/372646.html
Copyright © 2020-2023  润新知