access MDB 转换为 Execl(ASP类)
发布时间:2008-07-19 12:10:00
标签:类,ecxel,access,转换
由于下载这个clsExport2Excel 代码时,已经找不到代码出处
感谢上传这个类的朋友,为大家带来了方便
我只对其中的属性传递做了一些调整,希望更能贴近实际应用。
<%
'lucker.chu 留
'
'类开始
Class clsExport2Excel
'声明常量、变量
Private strFilePath,strTitle,strSql,strField,strRows,strCols,cFileName,DataBasePath
Private strCn,strHtml,strPath
Private objDbCn,objRs
Private objXlsApp,objXlsWorkBook,objXlsWorkSheet
Private arrField
'初始化类
Private Sub Class_Initialize()
strFilePath = ".\"
strTitle = "查询结果"
strRows = 2
strCols = 1
End Sub
'销毁类
Private Sub Class_Terminate()
End Sub
'数据表位置
Public Property Let DataPath(value)
DataBasePath = value
End Property
Public Property Get DataPath()
DataPath = DataBasePath
End Property
'属性FilePath
Public Property Let FilePath(value)
strFilePath = value
End Property
Public Property Get FilePath()
FilePath = strFilePath
End Property
'文件名
Public Property Let FileName(value)
cFileName = value
End Property
Public Property Get FileName()
FileName = cFileName
End Property
'属性Title
Public Property Let Title(value)
strTitle = value
End Property
Public Property Get Title()
Title = strTitle
End Property
'属性Sql
Public Property Let Sql(value)
strSql = value
End Property
Public Property Get Sql()
Sql = strSql
End Property
'属性Field
Public Property Let Field(value)
strField = value
End Property
Public Property Get Field()
Field = strField
End Property
'属性Rows
Public Property Let Rows(value)
strRows = value
End Property
Public Property Get Rows()
Rows = strRows
End Property
'属性Cols
Public Property Let Cols(value)
strCols = value
End Property
Public Property Get Cols()
Cols = strCols
End Property
Public Function export2Excel()
DataBasePath=Server.MapPath(DataBasePath) '修改要打开的数据表所在位置
strCn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DataBasePath
set objDbCn = server.CreateObject("adodb.connection")
objDbCn.open strCn
if strSql = "" or strField = "" then
response.write "参数设置错误,请与管理员联系!谢谢"
response.end
end if
if right(strFilePath,1) = "/" or right(strFilePath,1) = "\" then
strFilePath = left(strFilePath,len(strFilePath)-1)
end if
if instr("/",strFilePath) > 0 then
strFilePath = replace(strFilePath,"/","\")
end if
strFilePath = strFilePath & "\"
set objFso = createobject("scripting.filesystemobject")
if objFso.FolderExists(server.mappath(strFilePath)) = False then
objFso.Createfolder(server.mappath(strFilePath))
end if
strFileName = strFilePath & cFileName
set objRs = server.CreateObject("adodb.RecordSet")
objRs.open strSql,objDbCn,3,3
if objRs.recordcount <= 0 then
strHtml = "暂时没有任何合适的数据导出,如有疑问,请与管理员联系!抱歉"
else
set objXlsApp = server.CreateObject("Excel.Application")
objXlsApp.Visible = false
objXlsApp.WorkBooks.Add
set objXlsWorkBook = objXlsApp.ActiveWorkBook
set objXlsWorkSheet = objXlsWorkBook.WorkSheets(1)
objXlsWorkSheet.Cells(1,1).Value = strTitle
arrField = split(strField,"||")
for f = 0 to Ubound(arrField)
objXlsWorkSheet.Cells(2,f+1).Value = arrField(f)
next
for c = 1 to objRs.recordcount
for f = 0 to objRs.fields.count - 1
'''身份证号码特殊处理
if objRs.fields(f).name = "pm_field_41325" or objRs.fields(f).name = "cardID" then
objXlsWorkSheet.Cells(c+2,f+1).Value = "'" & objRs.fields(f).value
'''就业特殊处理
elseif objRs.fields(f).name = "JiuYe" then
select case objRs.fields(f).value
case 1
objXlsWorkSheet.Cells(c+2,f+1).Value = "是"
case 0
objXlsWorkSheet.Cells(c+2,f+1).Value = "否"
case -1
objXlsWorkSheet.Cells(c+2,f+1).Value = "(未知)"
end select
else
objXlsWorkSheet.Cells(c+2,f+1).Value = objRs.fields(f).value
end if
next
objRs.movenext
next
objXlsWorkSheet.SaveAs server.mappath(strFileName)
strHtml = "Excel文件已经导出成功,您可以<a href='" & strFileName & "' target='_blank'>打开</a>文件并将文件另存到本地目录中!"
'strhtml = server.mappath(strFileName)
objXlsApp.Quit
set objXlsWorkSheet = nothing
set objXlsWorkBook = nothing
set objXlsApp = nothing
end if
objRs.close
set objRs = nothing
if err > 0 then
strHtml = "Excel文件导出时出现意外错误,请<a href='#' onclick='window.history.back();'>返回</a>,如有疑问,请与管理员联系!抱歉"
end if
export2Excel = strHtml
End Function
'Public Function debug(varStr)
' response.write varStr
' response.end
'End Function
'类结束
End Class
%>
类的使用方法:
<%
Function createFileName()
fName=now
fName=replace(fName,":","")
fName=replace(fName,"-","")
fName=replace(fName," ","")
createFileName=fName
End Function
'on error resume next
'引用内容
set newExcel = New clsExport2Excel '调用MdbToExecl输出类
newExcel.DataPath = "OADB/DB.MDB" '数据源
newExcel.FileName = "okok.xls" 'Execl存放的文件名
newExcel.FilePath = "/execl" 'Execl文件存放的位置
newExcel.Sql = "select * from Information" '查询语句
newExcel.Title = "" '输出标题
newExcel.Field = "wenjm||tuplj||" '输出列名
response.write newExcel.export2Excel()
%>


猜你喜欢
- 1、JS正则表达式一条龙讲解(从原理和语法到JS正则) https://www.aspxhome.com/article/1105
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。JSON 函数使用 JSON
- 导语每年的节假日一到,大家头疼的总时同一个问题:你买到回家的票了吗?尤其是大型的节日:”比如国庆、春节......&am
- my.ini 是啥玩意?my.ini是MySQL数据库中使用的配置文件,修改这个文件可以达到更新配置的目的。my.ini 在哪放着呢?my.
- 本文将介绍8个简洁的Python技巧,若非经验十足的程序员,你肯定有些从未见过。向着更简洁更高效,出发吧!1.通过多个键值将对象进行排序 假
- USE MASTER GO IF EXISTS(SELECT * FROM dbo.sysdatabases WHERE name='
- select信道处理注意:有default就不会阻塞package mainfunc main() {var chan1 = make(ch
- 先看看:css中class与id的区别及应用表单的name与id其实是同一个意思,都是为了标记对象名称。它们所不同的是:name是Netsc
- 对List进行排序,Python提供了两个方法方法1.用List的内建函数list.sort进行排序list.sort(func=None,
- 您可以将SQL Server 数据库引擎升级到 SQL Server 2008。SQL Server 安装程序只需最少的用户干预就可升级 S
- 本文实例讲述了JavaScript实现的背景自动变色代码。分享给大家供大家参考,具体如下:这里演示JavaScript实现网页背景自动变色,
- 前言本文主要使用 cpu 版本的 tensorflow 2.4 版本完成文本的 word embedding 训练,并且以此为基础完成影评文
- 1. 算法描述冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们
- ff默认不让改 statusopera9 测试通过ie6 测试通过这东西是给统计部门用的,分析用户习惯以改良网站布局
- 以下的文章主要是介绍SQL Server数据转换服务的4妙用之执行一些自动化的操作。在SQL Server数据库的实际操作管理中,数据库管理
- 切片:切片指从现有列表中,获取一个子列表返回一个新列表,不影响原列表。下标以 0 开始:list = ['红','绿
- 本文通过Python3+pyqt5实现了python Qt GUI 快速编程的16章的excise例子。#!/usr/bin/env pyt
- 如下所示: m_start =date +' 09:00' m_end =date +' 13:00'rsv
- 上一篇介绍了如何在 Oracle 生成随机数字、字符串、日期、验证码以及 UUID,今天我们继续讨论在 MySQL 中生成各种随机数据的方法
- 有时会统计某个目录下有哪些文件,每个文件的sha256及文件大小等相关信息,这里用python3写了个脚本用来实现此功能,此脚本可跨平台,同