程序代码
<%
'==========================================================
'将纪录输出为(.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
%>