导出Excel报表的类

类文件Excel.asp

<%
''/**************************************/
''/* written by yzcangel                */
''/* version : v1.0                     */
''/* createdata:2005-09-01                   */
''/* lastmodifydate:2005-09-01          */
''/* Eamil:yzcangel@sohu.com            */
''/* QQ:80214600                        */
''/**************************************/
''类开始
Class Cls_Excel
    ''声明常量、变量
    Private objRs
    Private objExcelApp
    Private objExcelBook
    Private Conn
    Private Sql
    Private Title
    Private FieldName
    Private FieldValue
    Private FilePath
    Private FileName
    Private Col
    Private Row
    ''Class_Initialize 类的初始化
    Private Sub Class_Initialize()
          Row = 1 ''设定生成的Excel默认起始行
          Col = 1 ''设定生成的Excel默认起始列
    End Sub
    ''ReportConn得到数据库连接对象
    Public Property Let ReportConn(ByVal objConn)
          Set Conn = objConn
    End Property
    ''ReportSql得到SQL字符串
    Public Property Let ReportSql(ByVal strSql)
          Sql = strSql
    End Property
    ''ReportTitle得到所要生成报表的标题
    Public Property Let ReportTitle(ByVal strTitle)
          Title = strTitle
    End Property
    ''RsFieldName得到所要生成报表的列名称
    Public Property Let RsFieldName(ByVal strName)
          FieldName = Split(strName,"")
    End Property
    ''RsFieldValue得到所要生成报表的列值的数据库标识字段
    Public Property Let RsFieldValue(ByVal strValue)
          FieldValue = Split(strValue,"")
    End Property
    ''SaveFilePath得到Excel报表的保存路径
    Public Property Let SaveFilePath(ByVal strFilePath)
          FilePath = strFilePath
    End Property
    ''SaveFileName得到Excel报表的保存文件名
    Public Property Let SaveFileName(ByVal strFileName)
          FileName = strFileName
    End Property
    ''ColumnOffset得到Excel报表默认起始列
    Public Property Let ColumnOffset(ByVal ColOff)
          If ColOff > 0 then
                Col = ColOff
          Else
                Col = 1
          End If
    End Property
    ''RowOffset得到Excel报表默认起始行
    Public Property Let RowOffset(ByVal RowOff)
          If RowOff > 0 then
                Row = RowOff
          Else
                Row = 1
          End If
    End Property
    ''生成报表
    Sub Worksheet()
          Dim iCol,iRow,Num
          iCol = Col
          iRow = Row
          Num = 1
          Call DBRs()
          Call ExcelApp()
          Set objExcelBook = objExcelApp.Workbooks.Add
          ''写Excel标题
          ''--------------------------------------------------------
          objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = Title
          ''--------------------------------------------------------
          ''写Excel各列名
          ''--------------------------------------------------------
          iRow = Row + 1
          objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = "序号"
          iCol = iCol + 1
          For i = 0 to Ubound(FieldName)
                objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = FieldName(i)
                iCol = iCol + 1
          Next
          ''--------------------------------------------------------
          ''写Excel各列值
          ''--------------------------------------------------------
          iRow = Row + 2
          Do While Not objRS.EOF
                iCol = Col
                objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = Num
                iCol = iCol + 1
                For i = 0 to Ubound(FieldValue)
                      If IsNull(objRS(FieldValue(i))) then
                            objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = ""
                      Else
                            objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = objRS(FieldValue(i))
                      End If
                      iCol = iCol + 1
                Next
                objRS.MoveNext
                iRow = iRow + 1
                Num = Num + 1
          Loop
          ''--------------------------------------------------------
          Call SaveWorksheet()
    End Sub
    ''创建Adodb.Recordset对象
    Sub DBRs()
          If IsObject(objRs) = True Then Exit Sub
          Set objRs = Server.CreateObject("Adodb.Recordset")
          objRs.Open Sql,Conn,1,1
          If Err.Number > 0 Then
                Response.End
          End If
    End Sub
    ''创建Excel.Application对象
    Sub ExcelApp()
          If IsObject(objExcelApp) = True Then Exit Sub
          Set objExcelApp = Server.CreateObject("Excel.Application")
          objExcelApp.Application.Visible = True
          If Err.Number > 0 Then
                Response.End
          End If
    End Sub
    ''保存Excel报表
    Sub SaveWorksheet()
          objExcelbook.SaveAs FilePath & FileName & ".xls"
          If Err.Number = 0 Then
                Call Message("导出数据成功!")
          Else
                Call Message("导出数据失败!")
          End If
    End Sub
    ''信息提示
    Sub Message(msg)
          Response.Write("<script language=''JavaScript''>")
          Response.Write("alert(''"&msg&"'');")
          Response.Write("</script>")
          Response.End
    End Sub
    ''Class_Terminate 类注销
    Private Sub Class_Terminate()
          objExcelApp.Application.Quit
          Set objExcelBook = Nothing
          Set objExcelApp = Nothing
          objRs.Close
          Set objRs = Nothing
    End Sub
''类结束
End Class
%>

时间: 2024-10-30 02:23:28

导出Excel报表的类的相关文章

Web应用导出Excel报表的简单实现(HTML)

excel|web|导出excel Web应用导出Excel报表的简单实现      在Web应用中,很多数据经常要导出成Excel文档.用专门的生成真正的Excel文档的方式比较复杂,不太好用.所以经常用一种简单的方式来实现,即将报表保存为HTML格式,然后用Excel打开. 实现方式:    第一步,用JSP实现HTML版本的报表    第二步,在该JSP页面头部设置response的ContentType为Excel格式            <% response.setContentT

poi方式导出excel报表

问题描述 如何在poi方式导出的excel报表中,在某个整列添加超链接?谢谢 问题补充:renpeng301 写道 解决方案 你试试不用你导出的值 直接写个"测试" 看我刚才说的能否成功.解决方案二:那你的值不对 应该和我刚提供的那种方法没什么关系的,我的那种方法确实可以打出链接的,我经常用的.有可能你取值的时候本身就不对,望lz仔细检查一下下.不懂的也可以站内联系我啦.解决方案三:你的值打印出来是对的吧??解决方案四:renpeng301 写道Java代码 cell.setCellT

Java读写与导出Excel表格实例代码详解

正常导出报表的场景就是从数据库读取数据,然后按照指定的格式生成报表.其中可能涉及到的就是插入/复制行,单元格设置公式计算这些典型应用.下面就按这个需求给出解决方案.思路就是,首先制定一个Excel模板文档,暂命名为TEMPLATE.xls:然后读取该文档,插入/复制一些数据进去,另存为新的报表文件.这样就不需要在写入数据的时候考虑繁琐的表格样式问题了. 读取模板文件  代码如下 复制代码 POIFSFileSystem fs = new POIFSFileSystem(new FileInput

java poi 图片-Java POI导出Excel并添加图片问题

问题描述 Java POI导出Excel并添加图片问题 现在要利用POI导出Excel报表,并且需要将一张图片一起导出到Excel中,请问有Java中有什么方法能将图片的背景变成透明的,因为图片本身是一个公章,客户想通过程序实现盖章,所以需要将公章的图片变成透明的然后导出到Excel中,这样就不回遮挡Excel本身的内容.谢谢了! 解决方案 实现了吗?我现在也遇到这个问题了啊... 解决方案二: 实现了吗,我也遇到相同的问题,求解答

EasyUI 结合JS导出Excel文件的实现方法_jquery

废话俺就少说了,直接进入正题!!单纯的JS能够导出Excel的不多见,一般都需要调用客户端所安装的Office Excel组件来完成这个工作.这里我主要讲EasyUI内的DataGrid如何结合JS导出Excel文件 一. 导出Excel的核心代码段如下所示 function Exproter() { //获取Datagride的列 var rows = $('#test').datagrid('getRows'); var oXL = new ActiveXObject("Excel.Appl

在.NET环境下将报表导出Excel和Word

excel|word|导出excel 在VB.NET同样可以将报表导出到Excel和Word进行输出,制作出专业水平的报表.具体操作如下:(注:首先需添加引用,选择COM-->选择Microsoft Word Object Library和Microsoft Excel Object Library组件) Private Function CreaTable() As DataTable Dim dt As New DataTable() dt.Columns.Add("列1",

在.NET环境下将报表导出EXCEL和WORD lihonggen0(原作)

excel|word|导出excel 在.NET环境下将报表导出EXCEL和WORD    lihonggen0(原作)    在VB6开发环境下,本人使用EXCEL作过报表,在.NET环境下开发,本人使用水晶报表.但VB.NET同样可以将报表导出到EXCEL和WORD进行输出,制作出专业水平的报表. 具体操作如下:(注:首先需添加引用,选择COM-->选择Microsoft Word 10.0 Object Library和Microsoft Excel 10.0 Object Library

在.NET环境下将报表数据导出EXCEL和WORD

excel|word|导出excel|数据 在VB6开发环境下,本人使用EXCEL作过报表,在.NET环境下开发,本人使用水晶报表.但VB.NET同样可以将报表导出到EXCEL和WORD进行输出,制作出专业水平的报表. 具体操作如下:(注:首先需添加引用,选择COM,选择Microsoft Word 10.0 Object Library和Microsoft Excel 10.0 Object Library组件) 1.先创建一个DataTable,作为数据来源,也可以另将其它的数据源. Pri

水晶报表导出EXCEL时提示&amp;amp;quot;内存不足以完成操作&amp;amp;quot;

问题描述 我的软件是VS2005+SQL2000做的!在正版的XPhome里导出EXCEL水晶报表就会提示"内存不足以完成操作"在翻版的XP里是正常!有没有办法在不换系统情况下解决? 解决方案 解决方案二:尽于找到解决办法了!!在我的电脑里的高级选项里的环境变量更改.修改temp到C盘根目录下就行了!!解决方案三:ding!!!!!!!!!!!!!解决方案四:你的意思是说我要是给客户他也要将TEMP设置到C根目录下???解决方案五:这样要求每个人都这么设置不大现实.解决方案六:说的是服