|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。excel|导出excel|数据tonny出自:伟网动力http://www.weiw.com/
如需转载,请写明出处。
作者序:这类常识点,在网上有良多,在此自己只是做一个总结。
1、用OWC
甚么是OWC?
OWC是OfficeWebCompent的缩写,即Microsoft的OfficeWeb组件,它为在Web中绘制图形供应
了天真的同时也是最基础的机制。在一个intranet情况中,假如能够假定客户机上存在特定的扫瞄器和一
些功效壮大的软件(如IE5和Office2000),那末就有才能使用OfficeWeb组件供应一个交互式图形开
发情况。这类形式下,客户端事情站将在全部义务平分担很年夜的比重。
有关的具体先容也可在本站找到。
<%OptionExplicit
ClassExcelGen
PrivateobjSpreadsheet
PrivateiColOffset
PrivateiRowOffset
SubClass_Initialize()
SetobjSpreadsheet=Server.CreateObject("OWC.Spreadsheet")
iRowOffset=2
iColOffset=2
EndSub
SubClass_Terminate()
SetobjSpreadsheet=NothingCleanup
EndSub
PublicPropertyLetColumnOffset(iColOff)
IfiColOff>0then
iColOffset=iColOff
Else
iColOffset=2
EndIf
EndProperty
PublicPropertyLetRowOffset(iRowOff)
IfiRowOff>0then
iRowOffset=iRowOff
Else
iRowOffset=2
EndIf
EndPropertySubGenerateWorksheet(objRS)
PopulatestheExcelworksheetbasedonaRecordsetscontents
Startbydisplayingthetitles
IfobjRS.EOFthenExitSub
DimobjField,iCol,iRow
iCol=iColOffset
iRow=iRowOffset
ForEachobjFieldinobjRS.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
NextobjField
Displayallofthedata
DoWhileNotobjRS.EOF
iRow=iRow+1
iCol=iColOffset
ForEachobjFieldinobjRS.Fields
IfIsNull(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
EndIf
iCol=iCol+1
NextobjField
objRS.MoveNext
Loop
EndSubFunctionSaveWorksheet(strFileName)
Savetheworksheettoaspecifiedfilename
OnErrorResumeNext
CallobjSpreadsheet.ActiveSheet.Export(strFileName,0)
SaveWorksheet=(Err.Number=0)
EndFunction
EndClass
DimobjRS
SetobjRS=Server.CreateObject("ADODB.Recordset")
objRS.Open"SELECT*FROMxxxx","Provider=SQLOLEDB.1;PersistSecurity
Info=True;UserID=xxxx;Password=xxxx;InitialCatalog=xxxx;Datasource=xxxx;"
DimSaveName
SaveName=Request.Cookies("savename")("name")
DimobjExcel
DimExcelPath
ExcelPath="Excel"&SaveName&".xls"
SetobjExcel=NewExcelGen
objExcel.RowOffset=1
objExcel.ColumnOffset=1
objExcel.GenerateWorksheet(objRS)
IfobjExcel.SaveWorksheet(Server.MapPath(ExcelPath))then
Response.Write"<html><bodybgcolor=gainsborotext=#000000>已保留为Excel文件.
<ahref="&server.URLEncode(ExcelPath)&">下载</a>"
Else
Response.Write"在保留过程当中有毛病!"
EndIf
SetobjExcel=Nothing
objRS.Close
SetobjRS=Nothing
%>
2、用Excel的Application组件在客户端导出到Excel或Word
注重:两个函数中的“data“是网页中要导出的table的id
<inputtype="hidden"name="out_word"onclick="vbscript:buildDoc"value="导出到word"class="notPrint">
<inputtype="hidden"name="out_excel"onclick="AutomateExcel();"value="导出到excel"class="notPrint">
导出到Excel代码
<SCRIPTLANGUAGE="javascript">
<!--
functionAutomateExcel()
{
//StartExcelandgetApplicationobject.
varoXL=newActiveXObject("Excel.Application");
//Getanewworkbook.
varoWB=oXL.Workbooks.Add();
varoSheet=oWB.ActiveSheet;
vartable=document.all.data;
varhang=table.rows.length;
varlie=table.rows(0).cells.length;
//Addtableheadersgoingcellbycell.
for(i=0;i<hang;i++)
{
for(j=0;j<lie;j++)
{
oSheet.Cells(i+1,j+1</p>优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件 |
|