'实列化时自动调用
Private Sub Class_Initialize()
'OWC.Spreadsheet为office Web Compment,请确认已安装MS Office
Set SpreadSheetObj=Server.CreateObject("OWC.Spreadsheet")
iColOffset = 2
iRowOffset = 2
End Sub
'等同于析构函数
Private Sub Class_Terminate()
Set SpreadSheetObj=NoThing
End Sub
Public Property Let ColOffset(iCol)
If iCol > 0 Then
iColOffset = iCol
Else
iColOffset = 2
End If
End Property
public Property Let RowOffset(iRow)
If iRow > 0 Then
iRowOffset = iRow
Else
iRowOffset = 2
End If
End Property
'生成电子表格的方法
Sub GenerateWorkSheet(RsObj)
Dim RsField, iCol, iRow
iCol = iColOffset
iRow = iRowOffset
If RsObj.Eof OR RsObj is Nothing Then
Exit Sub
End If
'填写数据标题栏
For Each RsField In RsObj.Fields
SpreadSheetObj.Cells(iRow,iCol).Value = RsField.Name
SpreadSheetObj.Columns(iCol).AutoFitColumns
SpreadSheetObj.Cells(iRow,iCol).Font.Bold = True
SpreadSheetObj.Cells(iRow,iCol).Font.Italic = False
SpreadSheetObj.Cells(iRow,iCol).Font.Size = 10
SpreadSheetObj.Cells(iRow,iCol).Halignment = 2
iCol = iCol + 1
Next
'填写数据
Do While Not RsObj.Eof
iRow = iRow + 1
iCol = iColOffset
For Each RsField In RsObj.Fields
If isNull(RsField.Value) Then
SpreadSheetObj.Cells(iRow,iCol).Value = ""
Else
SpreadSheetObj.Cells(iRow,iCol).Value = ""& RsField.Value &""
'SpreadSheetObj.Columns(iCol).AutoFitColumns
'SpreadSheetObj.Columns(iCol).AutoFitRows
SpreadSheetObj.Cells(iRow,iCol).Font.Bold = False
SpreadSheetObj.Cells(iRow,iCol).Font.Italic = False
SpreadSheetObj.Cells(iRow,iCol).Font.Size = 10
End If
iCol = iCol + 1
Next
RsObj.MoveNext
Loop
Set c = SpreadSheetObj.Constants
Row = iRow
SpreadSheetObj.Range("a1:h"&Row).Borders.Weight = c.owcLineWeightThin
SpreadSheetObj.Range("a1:h"&Row).Borders.Color = "black"
Set ur = SpreadSheetObj.ActiveSheet.UsedRange
ur.AutoFitRows
ur.AutoFitColumns
End Sub 'End Of GenerateWorkSheet()
'保存Excel表格
Function SaveWorkSheet(SaveFileName)
On Error Resume Next
Call SpreadSheetObj.ActiveSheet.Export(SaveFileName,0)
SaveWorkSheet = (Err.number = 0)
End Function
End Class
请注意填写数据的循环中用了Font属性可以设置字体的大小等
Set ur = SpreadSheetObj.ActiveSheet.UsedRange
ur.AutoFitRows
ur.AutoFitColumns
AutoFitRows,AutoFitColumns这两个用来自动适应行和列
dim conn
set conn=server.CreateObject("adodb.connection")
conn.Open "test","sa",""
'conn.Open Application("connstr")
dim rs,sql,filename,fs,myfile,x,link
Set fs = server.CreateObject("scripting.filesystemobject")
'--假设你想让生成的EXCEL文件做如下的存放
filename = "c:\online.xls"
'--如果原来的EXCEL文件存在的话删除它
if fs.FileExists(filename) then
fs.DeleteFile(filename)
end if
'--创建EXCEL文件
set myfile = fs.CreateTextFile(filename,true)
Set rs = Server.CreateObject("ADODB.Recordset")
'--从数据库中把你想放到EXCEL中的数据查出来
sql = "select population,hourpos,datepos from populationperhour order by datepos,hourpos asc"
rs.Open sql,conn
if rs.EOF and rs.BOF then
else
dim strLine,responsestr
strLine=""
For each x in rs.fields
strLine= strLine & x.name & chr(9)
Next
'--将表的列名先写入EXCEL
myfile.writeline strLine
Do while Not rs.EOF
strLine=""
for each x in rs.Fields
strLine= strLine & x.value & chr(9)
next
'--将表的数据写入EXCEL
myfile.writeline strLine
rs.MoveNext
loop
end if
rs.Close
set rs = nothing
conn.close
set conn = nothing
set myfile = nothing
Set fs=Nothing
link="<A HREF=" & filename & ">Open The Excel File</a>"
Response.write link
end if
%>
</BODY>
</HTML>
2、数据库相关:
CREATE TABLE [populationperhour] (
[population] [int] NOT NULL ,
[hourpos] [int] NOT NULL ,
[datepos] [datetime] NOT NULL
);
insert into populationperhour values('936','1','2001-1-11');
insert into populationperhour values('636','2','2001-1-11');
insert into populationperhour values('106','3','2001-1-11');
insert into populationperhour values('177','4','2001-1-11');
insert into populationperhour values('140','5','2001-1-11');
insert into populationperhour values('114','6','2001-1-11');
insert into populationperhour values('94','7','2001-1-11');
insert into populationperhour values('49','8','2001-1-11');
insert into populationperhour values('88','9','2001-1-11');
insert into populationperhour values('215','10','2001-1-11');
insert into populationperhour values('370','11','2001-1-11');
insert into populationperhour values('550','12','2001-1-11');
insert into populationperhour values('629','13','2001-1-11');
insert into populationperhour values('756','14','2001-1-11');
insert into populationperhour values('833','15','2001-1-11');
insert into populationperhour values('923','16','2001-1-11');
insert into populationperhour values('980','17','2001-1-11');
insert into populationperhour values('957','18','2001-1-11');
insert into populationperhour values('812','19','2001-1-11');
insert into populationperhour values('952','20','2001-1-11');
insert into populationperhour values('1379','21','2001-1-11');
insert into populationperhour values('1516','22','2001-1-11');
insert into populationperhour values('1476','23','2001-1-11');
insert into populationperhour values('1291','24','2001-1-11');
insert into populationperhour values('1028','1','2001-1-12');
insert into populationperhour values('687','2','2001-1-12');
insert into populationperhour values('462','3','2001-1-12');
insert into populationperhour values('317','4','2001-1-12');
insert into populationperhour values('221','5','2001-1-12');
insert into populationperhour values('158','6','2001-1-12');
insert into populationperhour values('127','7','2001-1-12');
insert into populationperhour values('81','8','2001-1-12');
insert into populationperhour values('96','9','2001-1-12');
insert into populationperhour values('192','10','2001-1-12');
insert into populationperhour values('380','11','2001-1-12');
insert into populationperhour values('629','12','2001-1-12');
insert into populationperhour values('745','13','2001-1-12');
insert into populationperhour values('964','14','2001-1-12');
insert into populationperhour values('1012','15','2001-1-12');
insert into populationperhour values('1050','16','2001-1-12');
insert into populationperhour values('1135','17','2001-1-12');
insert into populationperhour values('1130','18','2001-1-12');
insert into populationperhour values('894','19','2001-1-12');
insert into populationperhour values('1026','20','2001-1-12');
insert into populationperhour values('1430','21','2001-1-12');
insert into populationperhour values('1777','22','2001-1-12');
insert into populationperhour values('1759','23','2001-1-12');
insert into populationperhour values('1697','24','2001-1-12');