用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧Delphi

利用owc建立EXECL的例子

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 20:18:17
呵呵,这个是我介绍制作EXECL的第三种方法了,对于OWC,我在前面的文章里也已经有所介绍,废话少说,请看代码:

<%
  Option Explicit

  Class ExcelGen

    Private objSpreadsheet
    Private iColOffset
    Private iRowOffset

    Sub Class_Initialize()
      Set objSpreadsheet = Server.CreateObject("OWC.Spreadsheet")

      iRowOffset = 2
      iColOffset = 2
    End Sub

    Sub Class_Terminate()
      Set objSpreadsheet = Nothing   ''Clean up
    End Sub

    Public Property Let ColumnOffset(iColOff)
      If iColOff > 0 then
        iColOffset = iColOff
      Else
        iColOffset = 2
      End If
    End Property

    Public Property Let RowOffset(iRowOff)
      If iRowOff > 0 then
        iRowOffset = iRowOff
      Else
        iRowOffset = 2
      End If
    End Property


    Sub GenerateWorksheet(objRS)

      ''Populates the Excel worksheet based on a Recordset''s contents
      ''Start by displaying the titles
      If objRS.EOF then Exit Sub

      Dim objField, iCol, iRow
      iCol = iColOffset
      iRow = iRowOffset

      For Each objField in objRS.Fields
        objSpreadsheet.Cells(iRow, iCol).Value = objField.Name
        iCol = iCol + 1
      Next ''objField

      ''Display all of the data
      Do While Not objRS.EOF
        iRow = iRow + 1
        iCol = iColOffset

        For Each objField in objRS.Fields
          If IsNull(objField.Value) then
            objSpreadsheet.Cells(iRow, iCol).Value = ""
          Else
            objSpreadsheet.Cells(iRow, iCol).Value = objField.Value
          End If

          iCol = iCol + 1
        Next ''objField

        objRS.MoveNext     
      Loop

    End Sub    


    Function SaveWorksheet(strFileName)
      ''Save the worksheet to a specified filename
      On Error Resume Next
      Call objSpreadsheet.ActiveSheet.Export(strFileName, 0)

      SaveWorksheet = (Err.Number = 0)
    End Function

  End Class
%>

<%
  Dim objRS
  Set objRS = Server.CreateObject("ADODB.Recordset")
  objRS.Open "SELECT * FROM titles", "DSN=FooBar"

  Dim objExcel
  Set objExcel = New ExcelGen

  objExcel.RowOffset = 4
  objExcel.ColumnOffset = 1

  objExcel.GenerateWorksheet(objRS)
  If objExcel.SaveWorksheet(Server.MapPath("foo.xls")) then
    Response.Write "Worksheet saved.  <a href=""foo.xls"">Download</a>"
  Else
    Response.Write "Error in saving worksheet!"
  End If

  Set objExcel = Nothing

  objRS.Close
  Set objRS = Nothing
%>

注意:请注意权限的问题……经常有人发EMAIL给我关于这方面的问题,实际上你只要给iuser_machine以适当的权限就可以了,比如对存放在EXECL文件的地方要有写的权限

:),下次我看看会再介绍一种生成EXECL的方法,可以利用BCP做的。

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:14,500.00000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号