|
呵呵,這個(gè)是我介紹制作EXECL的第三種方法了,對(duì)于OWC,我在前面的文章里也已經(jīng)有所介紹,廢話少說,請(qǐng)看代碼:
<% 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 %>
注意:請(qǐng)注意權(quán)限的問題……經(jīng)常有人發(fā)EMAIL給我關(guān)于這方面的問題,實(shí)際上你只要給iuser_machine以適當(dāng)?shù)臋?quán)限就可以了,比如對(duì)存放在EXECL文件的地方要有寫的權(quán)限
:),下次我看看會(huì)再介紹一種生成EXECL的方法,可以利用BCP做的。
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!