程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> ASP利用FSO導出到CSV文件類

ASP利用FSO導出到CSV文件類

編輯:ASP技巧

程序代碼

<%
'==========================================================
'將紀錄輸出為(.csv)文件
'制作日期:2003年3月
'作者         :塞北的雪
'==========================================================
Class Export_CSV
   PRivate fso '文件系統對象
   private fExport
   dim Exp_Type  

   private sub Class_Initialize()
       set FSO= Server.CreateObject("Scripting.FileSystemObject")   '建立文件系統對象實例
       Exp_Type=1   '導出類型  1為追加方式寫入一個文件  2為新建一個新文件再寫入
   end sub
  
   '關閉對象
   private sub Class_Terminate()
       fExport.Close
       set FSO=nothing
   end sub
  
   '導出主程序(用數組指定字段)
   public Function ExportFile(fullpath,rsset, HeaderArray)
        if Exp_type=1 then
             if not ExistFile(fullpath) then
                if CreateFile(fullpath) then
                   WriteHeader HeaderArray
                   WriteBody rsSet,HeaderArray
                else
                   err_Show "創建文件時發生錯誤!"
                end if
             else
                
                if OpenFile(fullpath) then
                  WriteBody rsSet,HeaderArray               
                else
                  err_Show "打開文件時發生錯誤!"                                  
                end if
             end if
        elseif Exp_type=2 then
             if ExistFile(fullpath) then
                   err_Show "文件名沖突!"
             else
                if CreateFile(fullpath) then
                   WriteHeader HeaderArray  
                   WriteBody rsSet,HeaderArray
                else
                   err_Show "創建文件時發生錯誤!"                                  
                end if
             end if    
        end if
        if err=0 then
           ExportFile=true
        else
           ExportFile=false
        end if
   end function
  
   '指定的標題書寫
   public sub WriteHeader( HeaderArray)
         sLine = ""
         for i=0 to ubound(HeaderArray,2)
            sLine=sLine & "," & HeaderArray(0,i)
         next
         if sLine<>"" then      
            sLine=right(sLine,len(sLine)-1)
            fExport.WriteLine(sLine)
         end if
   end sub

'記錄集指定的字段信息輸出
   public sub WriteBody(rsSet, HeaderArray)
     rsSet.movefirst
     Do Until rsSet.EOF
       sLine = ""
       for i=0 to ubound(HeaderArray,2)
          sLine=sLine & "," & rsSet(HeaderArray(1,i))
       next
     
       if sLine <> "" then
         sLine = right(sLine, Len(sLine)-1)
         fExport.WriteLine(sLine)
       end if
       rsSet.MoveNext
     Loop
   end sub
  
  
   '導出主程序(完全記錄集)
    public Function ExportFile2(fullpath,rsSet)
        if Exp_type=1 then
             if not ExistFile(fullpath) then
                if CreateFile(fullpath) then
                   WriteHeader2 rsSet
                   WriteBody2 rsSet
                else
                   err_Show "創建文件時發生錯誤!"
                end if
             else
                
                if OpenFile(fullpath) then
                  WriteBody2 rsSet               
                else
                  err_Show "打開文件時發生錯誤!"                                  
                end if
             end if
        elseif Exp_type=2 then
             if ExistFile(fullpath) then
                   err_Show "文件名沖突!"
             else
                if CreateFile(fullpath) then
                   WriteHeader2 rsSet  
                   WriteBody2 rsSet
                else
                   err_Show "創建文件時發生錯誤!"                                  
                end if
             end if    
        end if
        if err=0 then
           ExportFile2=true
        else
           ExportFile2=false
        end if
   end function
  
   '以字段名為標題書寫
   public sub WriteHeader2(rsSet)
         sLine = ""
         for i=0 to rsSet.fIElds.count-1
            sLine=sLine & "," & rsSet.fIElds(i).name
         next
         if sLine<>"" then      
            sLine=right(sLine,len(sLine)-1)
            fExport.WriteLine(sLine)
         end if
   end sub

'輸出記錄集中信息
   public sub WriteBody2(rsSet)
     rsSet.movefirst
     Do Until rsSet.EOF
       sLine = ""
       for i=0 to rsSet.fIElds.count-1
          sLine=sLine & "," & rsSet.fIElds(i).value
       next
     
       if sLine <> "" then
         sLine = right(sLine, Len(sLine)-1)
         fExport.WriteLine(sLine)
       end if
       rsSet.MoveNext
     Loop
   end sub
  
   '輸出錯誤信息
   private sub Err_Show(errDesc)
      Response.Write errDesc
      Response.End
   end sub
  
   '創建一個文件
   public Function CreateFile(fullpath)
        Set fExport = FSO.CreateTextFile(FullPath, false)
        if err=0 then
           CreateFile=true
        else
           CreateFile=false
        end if
   end function
  
   '打開一個文件
   public Function OpenFile(fullpath)
            set fExport=FSO.OpenTextFile(fullPath,8,false)
            if err=0 then
               OpenFile=true
            else
              OpenFile=false
            end if
   end function
  
  
   '判斷指定文件名的文件是否存在
   public function ExistFile(fullpath)
       if FSO.FileExists(fullpath) then
           ExistFile=true
       else
           ExistFile=false
       end if 
   end function
     
end Class
%>


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved