加入收藏  广告服务  关于我们
 2008-2-27

在asp种如何使用OWC

发表:matergg   阅读:次  关键字:OWC ASP   字体:[ ]

OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制。在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE5和Office 2000),那么就有能力利用Office Web组件提供一个交互式图形开发环境。这种模式下,客户端工作站将在整个任务中分担很大的比重。 

<%

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 

objSpreadsheet.Columns(iCol).AutoFitColumns 

"设置Excel表里的字体 

objSpreadsheet.Cells(iRow, iCol).Font.Bold = True 

objSpreadsheet.Cells(iRow, iCol).Font.Italic = False 

objSpreadsheet.Cells(iRow, iCol).Font.Size = 10 

objSpreadsheet.Cells(iRow, iCol).Halignment = 2 "居中 

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 

objSpreadsheet.Columns(iCol).AutoFitColumns 

objSpreadsheet.Cells(iRow, iCol).Font.Bold = False 

objSpreadsheet.Cells(iRow, iCol).Font.Italic = False 

objSpreadsheet.Cells(iRow, iCol).Font.Size = 10 

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 xxxx", "Provider=SQLOLEDB.1;Persist Security 

Info=True;User ID=xxxx;Password=xxxx;Initial Catalog=xxxx;Data source=xxxx;" 

Dim SaveName 

SaveName = Request.Cookies("savename")("name") 

Dim objExcel 

Dim ExcelPath 

ExcelPath = "Excel\" & SaveName & ".xls" 

Set objExcel = New ExcelGen 

objExcel.RowOffset = 1 

objExcel.ColumnOffset = 1 

objExcel.GenerateWorksheet(objRS) 

If objExcel.SaveWorksheet(Server.MapPath(ExcelPath)) then 

"Response.Write "<html><body bgcolor="gainsboro" text="#000000">已保存为Excel文件. 

<a href="" & server.URLEncode(ExcelPath) & "">下载</a>" 

Else 

Response.Write "在保存过程中有错误!" 

End If 

Set objExcel = Nothing 

objRS.Close 

Set objRS = Nothing 

%>

 热门文章
 推荐信息