日期:2011-12-10  浏览次数:20783 次

呵呵,这个是我介绍制作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)

  &nbs